1

フォームを簡単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;
4

1 に答える 1

12

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;
于 2013-01-26T17:20:03.247 に答える