在form上有image1,假设其大小为(200,200).执行某事件,代码如下(bm为tbitmap):
image1.width := 400;
image1.height := 400;
bm := tbitmap.create();
bm.loadfromfile('d:\a.bmp');
image1.canvas.draw(0, 0, bm);
bm.free();
虽然image的大小已经改变了,可是显示的图像只是左上角200*200的部分,请问,这是什么原因?我想得到400*400的图像如何实现?(以上数据均为测试数据)
image1.width := 400;
image1.height := 400;
bm := tbitmap.create();
bm.loadfromfile('d:\a.bmp');
image1.canvas.draw(0, 0, bm);
bm.free();
虽然image的大小已经改变了,可是显示的图像只是左上角200*200的部分,请问,这是什么原因?我想得到400*400的图像如何实现?(以上数据均为测试数据)
试一下 image1.Canvas.StretchDraw
Image.AutoSize:=true;表明控件随着图形的大小改变而改变。
你这种情况应该是Image.Strectch:=true;
Image.AutoSize:=false;
image1.Width:=400;
image1.Height:=400;
bm:=tbitmap.Create;
bm.LoadFromFile('d:\2.bmp');
image1.canvas.draw(0, 0, bm);
image1.Stretch:=true;
bm.Free;
image1.stretch := true;原来是写在代码中啊
我是在property中定义的stretch为true,结果不好使。呵呵。
还有问题:
当执行完image1.stretch := true后,整个窗口的延迟变的很严重,能不能有办法解决啊!
to 各位:
我想实现的就是全屏预览,form中相应的图片也要放大。有没有好的方法。
如果直接使用copyrect的话,好使。
但是在原始窗口显示的状态下,点击全屏显示按钮,将窗口和图片放大就不好使了。
你再放一个image ,width 和height 为放大后的大小,copyrect后,原image不让它显示。或者点击全屏显示按钮后你用代码把image的长和高改变为你需要的大小,再用以下代码放大图片为改变image的长和高后的大小
image.picture.bitmap.width:=image.width;
image.picture.bitmap.height:=image.height;
image1.Canvas.StretchDraw(image1.clientrect,image.picture.graphic);