我在窗体上有一个简单的TImage
控件。我在设计时分配了一个位图图像。运行时,我使用 TImage.Picture.Bitmap.Canvas
读取画布。一切正常。然后,我在设计时加载 JPEG 图像。然而,现在当我阅读这幅画布时,图片突然消失了。
为什么会发生这种情况,我该如何避免?
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
Canvas: TCanvas;
begin
Canvas:= Image1.Picture.Bitmap.Canvas;
//Do something with Canvas, but canvas is empty and image disappeared
end;
这是意料之中的,因为 JPG 图像根本不是位图 (BMP) 图像。
您必须将其转换为位图才能对其进行某些操作:
var
bm: TBitmap;
begin
bm := TBitmap.Create;
try
bm.Assign(Image1.Picture.Graphic);
bm.Canvas.DoSomethingReallyAwesome(ttExtraAwesome);
bm.SaveToFile('C:UsersAndreas RejbrandDesktoptest5.bmp');
finally
bm.Free;
end;