cg1120给我的裁剪图像程序如下,当运行到bmp.Assign(Image1.Picture.Bitmap);一句时,Image1的图像就没了,这是什么原因呢?
//剪切区域
var
rgn :HRgn;
bmp :TBitmap;
begin
bmp :=TBitmap.Create;
bmp.Assign(Image1.Picture.Bitmap);
rgn :=CreateRectRgn(40,40,250,150);
SelectClipRgn(Image1.Canvas.Handle,rgn);
Image1.Picture :=nil;
BitBlt(Image1.Canvas.Handle,40,40,250,150,bmp.Canvas.Handle,0,0,SRCCOPY);
bmp.Free;
end;
//剪切区域
var
rgn :HRgn;
bmp :TBitmap;
begin
bmp :=TBitmap.Create;
bmp.Assign(Image1.Picture.Bitmap);
rgn :=CreateRectRgn(40,40,250,150);
SelectClipRgn(Image1.Canvas.Handle,rgn);
Image1.Picture :=nil;
BitBlt(Image1.Canvas.Handle,40,40,250,150,bmp.Canvas.Handle,0,0,SRCCOPY);
bmp.Free;
end;
换用BMP图像就正常了.