Ehlib 單元格 圖像繪製 代碼

// 繪製 BMP 格式圖像
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;  State: TGridDrawState);
var
  bmp : TBitmap;
  stream: TMemorystream;
begin
  if  Column.FieldName <> 'Img' then exit;
  bmp := TBitmap.Create;
  stream:= TMemorystream.Create;
   tBlobField(myquery1.FieldByName('img')).SaveToStream(stream);
   stream.Position := 0;

   try
     bmp.LoadFromStream(stream);  //Column.Field.AsString  存放圖片路徑
     DBGridEh1.Canvas.StretchDraw(Rect, bmp);
     bmp.Free;
   Except on e : exception do
     bmp.Free;
   end;
end;
 
繪製 jpg格式圖像 :
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;  State: TGridDrawState);
var
  bmp : TBitmap;
  jpg:  TJpegImage;
  stream: TMemorystream;
begin
  if  Column.FieldName <> 'Img' then exit;
  if  myquery1.State in [dsInsert, dsEdit] then exit;

  stream := TMemorystream.Create;
  tBlobField(myquery1.FieldByName('img')).SaveToStream(stream);
  stream.Position := 0;
  jpg := TJpegImage.Create;
  jpg.LoadFromStream(stream);

  bmp := TBitmap.Create;
  bmp.Width := jpg.Width;
  BMP.Height := jpg.Height;
  BMP.Canvas.Draw(0,0, jpg);
  jpg.Free;
  try
     DBGridEh1.Canvas.StretchDraw(Rect, bmp);
     bmp.Free;
  Except on e : exception do
     bmp.Free;
  end;
end;


function BmpToJpg(ms: TMemorystream): TMemorystream;
Var
  Jpg : TJpegImage;
  BMP : TBitMap ;
begin
  Jpg := TJpegImage.Create;
  BMP := TBitmap.Create;
  BMP.LoadFromStream(ms);
  Jpg.Assign(BMP);
  Result := TMemorystream.Create;
  jpg.SaveToStream(Result);
  Result.Position := 0;
  BMP.Free ;
  Jpg.Free;
end;


function JpgToBmp(jpgStream: Tmemorystream): Tmemorystream;
var
  MyJPEG: TJPEGImage;
  MyBMP: TBitmap;
begin
  MyJPEG := TJPEGImage.Create;
  MyJPEG.LoadFromStream(jpgStream);
  MyBMP := TBitmap.Create;
  MyBMP.Width := MyJPEG.Width;
  MyBMP.Height := MyJPEG.Height;
  MyBMP.Canvas.Draw(0,0, MyJPEG);
  Result := Tmemorystream.Create;
  MyBMP.SaveToStream(Result);
  Result.Position := 0;

  MyBMP.Free;
  MyJPEG.Free;
end;
相關文章
相關標籤/搜索