Fórum jpeg dica que funcione? #256475
28/10/2004
0
mas até o momento nenhuma funcionou corretamente testei muitas ...
por favor alguém saberia como posso armazenar imagens *.jpg em meu banco e depois poder visualizar sem maiores problemas
Crcam
Curtir tópico
+ 0Posts
28/10/2004
Gandalf.nho
Gostei + 0
28/10/2004
Aroldo Zanela
Qual a versão do Delphi e qual banco de dados está utilizando? Você pode colocar o código da(s) rotina(s) testada(s) para análise?
Gostei + 0
02/02/2005
Christian_adriano
{ Converte de BMP para JPEG - JPG }
function QualquerCoisaToJPEG(iGraphic: TGraphic): TJPEGImage;
begin
Result := TJPEGImage.Create;
Result.Assign(iGraphic);
end;
{ Converte de BMP para JPEG }
procedure Bmp_Jpeg(const BmpFileName, JpgFileName: string);
var
Bmp: TBitmap;
Jpg: TJPEGImage;
begin
Bmp := TBitmap.Create;
Jpg := TJPEGImage.Create;
try
Bmp.LoadFromFile(BmpFileName);
Jpg.Assign(Bmp);
Jpg.SaveToFile(JpgFileName);
finally
Jpg.Free;
Bmp.Free;
end;
end;
------------------------------------------------------------------------------
{ Carrega para o BD uma Imagem JPEG - JPG }
procedure CarregaFotoParaBancoJPEG(CampoImagem, FileName : String; DataSet : TDataSet);
var
FS: TFileStream;
BS: TStream;
begin
if Trim(FileName) <> ´´ then
begin
FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
BS := DataSet.CreateBlobStream(DataSet.FieldByName(CampoImagem), bmWrite);
try
BS.CopyFrom(FS, FS.Size);
finally
FS.Free;
BS.Free;
end;
end;
end;
------------------------------------------------------------------------------
{ Descarrega do BD uma Imagem JPEG - JPG }
procedure CarregarDoBancoJPEG(CampoImagem : String; DataSet : TDataSet; Img : TImage);
var
BS: TStream;
Img_: TJPEGImage;
begin
if not DataSet.FieldByName(CampoImagem).IsNull then
begin
BS := DataSet.CreateBlobStream(DataSet.FieldByName(CampoImagem), bmRead);
Img_ := TJPEGImage.Create;
try
Img_.LoadFromStream(BS);
Img.Picture.Assign(Img_);
finally
BS.Free;
Img_.Free;
end;
end
else Img.Picture:= nil;
end;
------------------------------------------------------------------------------
{ Carrega para o BD uma Image BMP }
procedure CarregaFotoParaBanco(CampoImagem : String; Img : TImage; CDS : TDataSet);
var
Stm: TStream;
JPEG : TJPEGImage;
begin
if not (CDS.State in [dsInsert, dsEdit]) then
Exit;
try
Stm := TMemoryStream.Create;
if Img.Picture.Graphic = nil then
Exit;
{ Converte uma Imagem BMP para JPEG - JPG }
JPEG := TJPEGImage.Create;
JPEG := QualquerCoisaToJPEG(Img.Picture.Graphic);
JPEG.Compress;
{ Guarda a Imagem convertida no Banco de Dados }
Img.Picture.Graphic := JPEG;
Img.Picture.Graphic.SaveToStream(Stm);
Stm.Position := 0;
if CDS.State in [dsInsert, dsEdit] then
(CDS.FieldByName(CampoImagem) as TBlobField).LoadFromStream(Stm);
finally
Stm.Free;
JPEG.Free;
end;
end;
------------------------------------------------------------------------------
procedure CarregaFotoDoBanco(CampoImagem : String; CDS : TDataSet; ImgDestino : TImage);
var
Stm: TStream;
begin
Stm := TMemoryStream.Create;
try
with CDS do begin
if TBlobField(FieldByName(CampoImagem)).BlobSize > 0 then
begin
TBlobField(FieldByName(CampoImagem)).SaveToStream(Stm);
Stm.Position := 0;
ImgDestino.Picture.Bitmap.LoadFromStream(Stm);
end
else
ImgDestino.Picture.Assign(nil);
end;
finally
Stm.Free;
end;
end;
------------------------------------------------------------------------------
uses QRCtrls, DB, DBTables, JPEG
Espero ajudar muita gente.
[]´s.
Christian.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)