uses
fpimage, fpreadjpeg, fpreadpng, fpreadbmp, fpreadgif, fpreadtiff, fpwritebmp;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
bmp: TBitmap;
image: TFPCustomImage;
reader: TFPCustomImageReader;
writer: TFPCustomImageWriter;
fotostream: TStream;
begin
if Column.Index=1 then
begin
try
image:=TFPMemoryImage.Create(1, 1);
writer:=TFPWriterBMP.Create;
fotostream:=TStream.Create;
bmp:=TBitmap.Create;
case ExtractFileExt(ZQuery1.FieldByName('foto').AsString) of
'.bmp': reader:=TFPReaderBMP.Create;
'.jpg', '.jpeg': reader:=TFPReaderJPEG.Create;
'.png': reader:=TFPReaderPNG.Create;
'.gif': reader:=TFPReaderGif.Create;
'.tif', '.tiff': reader:=TFPReaderTIFF.Create;
end;
if image.LoadFromFile(ZQuery1.FieldByName('foto_dir').AsString+ZQuery1.FieldByName('foto').AsString, reader) then
begin
image.SaveToStream(fotostream, writer);
fotostream.Position:=0;
bmp.LoadFromStream(fotostream, fotostream.Size);
DBGrid1.Canvas.StretchDraw(Rect, bmp);
end;
finally
writer.Free;
image.Free;
bmp.Free;
fotostream.Free;
end;
end;
end;