qq_36582796
qq_36582796
采纳率0%
2017-10-18 14:55

delphi新手求大神解答,image.picture:=nil把图像清空后

procedure TForm1.N6Click(Sender: TObject); //裁剪上边
var
rgn: Hrgn;
Bmp: TBitmap;
str: string;
num: integer;

begin
str:='';
InputQuery('裁剪大小设定','输入数值',str);
if str='' then
begin
ShowMessage('输入值不能为空请重新输入!');
end
else
begin
num:=strtoint(str);

Bmp:= TBitmap.Create;
Bmp.Assign(image1.Picture.Bitmap);
//创建剪切区域
rgn:= CreateRectRgn(0,num,Bmp.Width,Bmp.Height-num);
//选中剪切区域
SelectClipRgn(image1.Canvas.Handle,rgn);
//清空图像

image1.Picture := nil;

//image1.Picture.Bitmap.FreeImage;
BitBlt(image1.Canvas.Handle,0,num,Bmp.Width,Bmp.Height-num,Bmp.Canvas.Handle,0,num,SRCCOPY);
//空白处还不知道怎么处理。。。




Bmp.Free;

end;
把图片剪切,背景的白色如何能适应剪切后的图片大小

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • xingnup xingnup 3年前

    设定图像大小,将要保留的那部分区域复制成新图像就行了,就不会有空白啦.

    点赞 评论 复制链接分享

相关推荐