IGPImage 转TBitmap
时间: 2023-10-12 18:04:46 浏览: 39
您可以使用以下代码将 IGPImage 转换为 TBitmap:
```delphi
uses
GdiPlus, GdiPlusHelpers;
function IGPImageToTBitmap(const Image: IGPImage): TBitmap;
var
Graphics: IGPGraphics;
Bitmap: TBitmap;
HBitmap: HBITMAP;
GDIBitmap: TGPBitmap;
begin
GDIBitmap := TGPBitmap.Create(Image);
try
Bitmap := TBitmap.Create;
try
Bitmap.Width := GDIBitmap.GetWidth;
Bitmap.Height := GDIBitmap.GetHeight;
Graphics := TGPGraphics.Create(Bitmap.Canvas.Handle);
Graphics.DrawImage(GDIBitmap, 0, 0);
// Convert the TBitmap to a HBITMAP
HBitmap := Bitmap.Handle;
Bitmap.ReleaseHandle;
Bitmap.Handle := 0;
// Assign the HBITMAP to the TBitmap
Bitmap.Handle := HBitmap;
Result := Bitmap;
except
Bitmap.Free;
raise;
end;
finally
GDIBitmap.Free;
end;
end;
```
您可以将 IGPImage 对象传递给 `IGPImageToTBitmap` 函数,它将返回一个转换后的 TBitmap 对象。请确保在使用完 TBitmap 对象后释放它的内存。