U
ufo
Unregistered / Unconfirmed
GUEST, unregistred user!
刚才测试有误,
只一句,
Bitblt(Image1.Canvas.Handle, 0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height, Image1.Canvas.Handle, 0, 0, notSRCCOPY);
图片不能刷新,还是要调用repaint();才能刷新。
另外内存是增加了约4k,且只增加一次,多次调用不会反复增加。
原先取反操作后内存减少且不需手工调用 repaint的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
BMP : TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.Width := Image2.Picture.Bitmap.Width;
Bmp.Height := Image2.Picture.Bitmap.Height;
Bitblt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Image2.Canvas.Handle, 0, 0, notSRCCOPY);
Image1.Picture.Bitmap.Assign(Bmp);
finally
Bmp.Free;
end;
end;
只一句,
Bitblt(Image1.Canvas.Handle, 0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height, Image1.Canvas.Handle, 0, 0, notSRCCOPY);
图片不能刷新,还是要调用repaint();才能刷新。
另外内存是增加了约4k,且只增加一次,多次调用不会反复增加。
原先取反操作后内存减少且不需手工调用 repaint的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
BMP : TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.Width := Image2.Picture.Bitmap.Width;
Bmp.Height := Image2.Picture.Bitmap.Height;
Bitblt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Image2.Canvas.Handle, 0, 0, notSRCCOPY);
Image1.Picture.Bitmap.Assign(Bmp);
finally
Bmp.Free;
end;
end;