图像剪切之后,被剪切的部分却与原来的图像有所不同?详情如下:(50分)

  • 主题发起人 主题发起人 zikao419
  • 开始时间 开始时间
Z

zikao419

Unregistered / Unconfirmed
GUEST, unregistred user!
if (StartX=EndX) and (StartY=EndY) then
begin
DrawFrame;
end
else
begin
image2.Picture :=nil;

with image2,Canvas do
begin
Width:=EndX-StartX;
Height:=EndY-StartY;
CopyRect(Rect(0,0,Width,Height),
image1.Canvas,
Rect(StartX,StartY,EndX,EndY));
end;

Image1.Picture :=nil;
image1.Visible :=False;
a:=copy(Bmp_name,1,length(Bmp_name)-4) + '.bmp';
image2.Picture.SaveToFile(a);
image2.Picture :=nil;
image2.Picture.LoadFromFile(a);
image2.Visible:=True;
end;


是这样的,我使这个程序将一副穿黑白竖条文衣服人的照片用这个程序截取其中的一部分图片,截取后的图片黑白竖条文衣服却变成黑白方格的衣服了,而其他的没发现有什么变化?我想请大家帮我解决这个问题,我要的是界却后的图片与原来图片一模一样的。如何解决?
 
CopyRECT(Rect(0,0,Width,Height),
image1.Canvas,
Rect(StartX,StartY,EndX,EndY));
)
这两个方格子大小不同,所以图像会缩放,方格就难免了。
 
缩放应该是按照比例进行的,怎莫会变形呢?
 
with image2,Canvas do
begin
//这里不要在用Width及Height了

W:=EndX-StartX;
H:=EndY-StartY;
CopyRect(Rect(0,0,w,h),
image1.Canvas,
Rect(StartX,StartY,EndX,EndY));
end;
 
to:lqcros
你的回答好像没有实质的东西,只是把变量换了一下吧!
 
//缩放应该是按照比例进行的,怎莫会变形呢?
因为长和宽的缩放比例不同
lqcros的代码:
W:=EndX-StartX;
H:=EndY-StartY;
保证了两个区域的大小一样应该有效果的.
 
用CopyRect最好是复制宽高相同的,不然就会出现问题
 
谢谢各位大虾。
 
后退
顶部