高分解决:怎么样实现image图象的放大和缩小、以及上下左右位置移动? 困扰我几天的问题,请大家帮忙解决: 在编写图象处理软件的时候,怎么样实现对IMAGE图象的放大和缩小、以及图象的上下左右位置移动?有源码最好,高分送! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将image控件的大小改变就能使图片大小变化。同时将strech属性设置为true。 1。你可以用一个临时的IMAGE_temp 然后设定IMAGE_temp的大小 在导入 就可以了吧 2。也可以用CANVAS 使用它的COPYRECT 例如:CANVAS。COPYRECT(); 图象的上下左右位置移动:这就简单多了 自己找找吧 在MOUSEMOVE里就可以 我用下面程序实现了放大和缩小,但是还是有点问题,图象只往右下角放大或缩小,不能均匀的四周放大或缩小,大家给我看看,还有位置怎么移动啊?procedure TForm1.ZoomInOut(bitmap: TBitmap; m, n: extended);var Mybmp: TBitmap;begin self.DoubleBuffered := True; Mybmp := TBitmap.Create; Mybmp.Width := Trunc(m * Self.Image1.Width); Mybmp.Height := Trunc(n * self.Image1.Height); image1.Width := Mybmp.Width; image1.Height := MyBmp.Height; SetStretchBltMode(Mybmp.Canvas.Handle, HalfTone); Stretchblt(Mybmp.Canvas.Handle, 0, 0, Mybmp.Width, Mybmp.Height, OriginalBmp.Canvas.Handle, 0, 0, OriginalBmp.Width, OriginalBmp.Height, SRCCOPY); Mybmp.PixelFormat := pf24bit; image1.Picture.Bitmap.Assign(MyBmp); MyBmp.Free;end; Mybmp.Width := Trunc(m * Self.Image1.Width); Mybmp.Height := Trunc(n * self.Image1.Height); image1.Width := Mybmp.Width; image1.Height := MyBmp.Height;之后再加上Mybmp.top:=image1.top-(m-1)*self.Image1.Height/2;Mybmp.left:=image1.left-(m-1)*self.Image1.Width/2;image1.top:=Mybmp.top;image1.left:=Mybmp.left; Stretchblt 吧,这些代码上google,百度找就有 自己写不好控制,用DImageEn控件 请问楼上imageenview在那里可以有免费的下载啊,谢谢 [email protected]给我发邮件我给你发 关于 ShowModal=mrok 无法关闭及异常显示问题 EhLib安装问题 紧急求助该c代码如何用delphi来表示, 关于ttable的问题,请大家帮帮忙啊!!~ 一个简单的报表的打印问题 DBGrid的问题,高手请进。 如何创建文件图标并和操作系统相关联! 请问大虾,打开ie窗口后,在 delphi应用程序里怎么关闭它。 请问在delphi中如何实现与return类似的功能? 精确定位打印 请教一个关于lookup字段的问题 ADOQUERY操作問題2
同时将strech属性设置为true。
var
Mybmp: TBitmap;
begin
self.DoubleBuffered := True;
Mybmp := TBitmap.Create;
Mybmp.Width := Trunc(m * Self.Image1.Width);
Mybmp.Height := Trunc(n * self.Image1.Height);
image1.Width := Mybmp.Width;
image1.Height := MyBmp.Height;
SetStretchBltMode(Mybmp.Canvas.Handle, HalfTone);
Stretchblt(Mybmp.Canvas.Handle, 0, 0, Mybmp.Width,
Mybmp.Height, OriginalBmp.Canvas.Handle, 0, 0, OriginalBmp.Width,
OriginalBmp.Height,
SRCCOPY);
Mybmp.PixelFormat := pf24bit;
image1.Picture.Bitmap.Assign(MyBmp);
MyBmp.Free;
end;
Mybmp.Height := Trunc(n * self.Image1.Height);
image1.Width := Mybmp.Width;
image1.Height := MyBmp.Height;
之后再加上
Mybmp.top:=image1.top-(m-1)*self.Image1.Height/2;
Mybmp.left:=image1.left-(m-1)*self.Image1.Width/2;
image1.top:=Mybmp.top;
image1.left:=Mybmp.left;
给我发邮件我给你发