Изображение изображения исчезает при чтении его холста?
У меня простой 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;
1 ответ
Решение
Это ожидаемо, поскольку изображение JPG просто не является растровым изображением (BMP).
Вы должны преобразовать его в растровое изображение, чтобы что-то с ним сделать:
var
bm: TBitmap;
begin
bm := TBitmap.Create;
try
bm.Assign(Image1.Picture.Graphic);
bm.Canvas.DoSomethingReallyAwesome(ttExtraAwesome);
bm.SaveToFile('C:\Users\Andreas Rejbrand\Desktop\test5.bmp');
finally
bm.Free;
end;