A
articom
Unregistered / Unconfirmed
GUEST, unregistred user!
需要实现把一幅图中的局部选中并剪切下来保存在剪贴板或者另一个Image里面
麻烦各位了!
我现在弄的老是只能剪贴到原图中
而且即使剪下了剪贴板里面的内容也是整幅图
弄不大懂怎么回事
下面是我的代码:
procedure TForm1.cutExecute(Sender: TObject); //图像剪切
var
ARect,ARect1:TRect;
begin
copyExecute(Sender);
with Image1.Canvas do
begin
CopyMode:=cmWhiteness;
ARect:=Rect(Kx1,Ky1,Kx2+1,Ky2+1);
ARect1:=Rect(0,0,Kx2+1-Kx1,Ky2+1-Ky1);
CopyRect(ARect1,Image1.Canvas,ARect);
CopyMode:=cmSrcCopy;
end;
end;
procedure TForm1.copyExecute(Sender: TObject); //复制
begin
Clipboard.Assign(Image1.Picture);
end;
procedure TForm1.pasteExecute(Sender: TObject); //粘贴
var
Bitmap:TBitmap;
begin
if Clipboard.HasFormat(CF_BITMAP) then
begin
Bitmap:=TBitmap.Create;
try
Bitmap.Assign(Clipboard);
Image2.Canvas.Draw(0,0,Bitmap);
finally
Bitmap.Free;
end;
end;
end;
麻烦各位了!
我现在弄的老是只能剪贴到原图中
而且即使剪下了剪贴板里面的内容也是整幅图
弄不大懂怎么回事
下面是我的代码:
procedure TForm1.cutExecute(Sender: TObject); //图像剪切
var
ARect,ARect1:TRect;
begin
copyExecute(Sender);
with Image1.Canvas do
begin
CopyMode:=cmWhiteness;
ARect:=Rect(Kx1,Ky1,Kx2+1,Ky2+1);
ARect1:=Rect(0,0,Kx2+1-Kx1,Ky2+1-Ky1);
CopyRect(ARect1,Image1.Canvas,ARect);
CopyMode:=cmSrcCopy;
end;
end;
procedure TForm1.copyExecute(Sender: TObject); //复制
begin
Clipboard.Assign(Image1.Picture);
end;
procedure TForm1.pasteExecute(Sender: TObject); //粘贴
var
Bitmap:TBitmap;
begin
if Clipboard.HasFormat(CF_BITMAP) then
begin
Bitmap:=TBitmap.Create;
try
Bitmap.Assign(Clipboard);
Image2.Canvas.Draw(0,0,Bitmap);
finally
Bitmap.Free;
end;
end;
end;