Meu camarada, bom dia!
Vamos ver se eu entendi.Você quer salvar imagens em BD no formato JPG
ou BPM, é isso?
Caso seja isto, vc pode usar a função abaixo:

procedure GravaFoto(DataSet : TDataSet; BlobFieldName, FileName :
String; Nome: String);
var
  ext, mDir, mSql : string;
  JpegImage : TJPEGImage;
  bitmap:TBitMap;
begin
  DataSet.Insert;
  if (DataSet.State in [dsEdit,dsInsert]) then
  begin
    mDir := ExtractFileDir(FileName);
    ext := UpperCase(ExtractFileExt(FileName));
    if (ext <> '.BMP') and (ext <> '.JPG') and (ext <> '.JPEG') then
    begin
      raise EAccessViolation.Create('Formato de imagem não suportado! '+
        'Formato suportado: Jpeg ou Bitmap');
        Abort;
    end;
    try
      JpegImage := TJpegImage.Create;
      Bitmap := TBitmap.Create;
      if (ext = '.BMP') then
      begin
        Bitmap.LoadFromFile(FileName);
        JpegImage.Assign(Bitmap);
        JpegImage.Compress;
      end
      else
        JpegImage.LoadFromFile(FileName);

      JpegImage.SaveToFile(Nome + '.JPG');
      (DataSet.FieldByName(BlobFieldName) as
      TBlobField).LoadFromFile(Nome + '.JPG');
      DataSet.Post;
      DeleteFile(PChar(FileName));
      DeleteFile(PChar(mDir + '.JPG'));
    finally
      Bitmap.Free;
      JpegImage.Free;
    end;
  end;
end;

Espero ter ajudado,
Fraterno abraço,
Carlos


Responder a