Q question Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-12 #1 如何等比缩小一个图形,如以前的是 1024*768, 我输入一个参数如:800 它就自动保存为 800*600 的图片? 急。
M mikecool Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #2 如果是显示的话,你可以用RectCopy来使用,估计你拷贝了以后可以存成文件
L lhz Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-21 #5 从某个角度说,这是图象处理领域内没有完全解决的问题, 关键是看你对保持图象细节的要求。 一般WINDOWS GUI是用直接抽线实现的,也就是隔一定距离 丢一条线。如果恰好这里是图象中的一条线,则图象看起来 完全变样了。 较通用的办法是重采样的方法。有双线性采样、双二次采样 和双三次采样等,算法并不是特别简单,但也不特别复杂, 可以参考一些图象处理书籍。 如果对图象细节的保留有特殊要求,就不能用通常的方法实 现了。有很多人在研究这个问题,因为生产图象设备和软件 的公司非常需要这些东西。如果你有好的算法,就可以卖大 价钱。
从某个角度说,这是图象处理领域内没有完全解决的问题, 关键是看你对保持图象细节的要求。 一般WINDOWS GUI是用直接抽线实现的,也就是隔一定距离 丢一条线。如果恰好这里是图象中的一条线,则图象看起来 完全变样了。 较通用的办法是重采样的方法。有双线性采样、双二次采样 和双三次采样等,算法并不是特别简单,但也不特别复杂, 可以参考一些图象处理书籍。 如果对图象细节的保留有特殊要求,就不能用通常的方法实 现了。有很多人在研究这个问题,因为生产图象设备和软件 的公司非常需要这些东西。如果你有好的算法,就可以卖大 价钱。
A artx Unregistered / Unconfirmed GUEST, unregistred user! 2000-05-12 #6 若对图像质量要求不很高,可以: var Bmp1,Bmp2:TBitmap;//Bmp1是提原图,Bmp2是变化为宽800的小图 begin Bmp1=TBitmap.create; Bmp2=TBitmap.create; Bmp1.LoadFromFile('...'); Bmp2.PixelFormat =Bmp1.PixelFormat ; Bmp2.Width=800; Bmp2.Height =round(Bmp2.Width*Bmp1.Height/Bmp1.Width); Bmp2.Canvas.StretchDraw(Bounds(0,0, Bmp2.Width,Bmp2.Height), Bmp1); Bmp2.SaveToFile('d:/temp.bmp'); end;
若对图像质量要求不很高,可以: var Bmp1,Bmp2:TBitmap;//Bmp1是提原图,Bmp2是变化为宽800的小图 begin Bmp1=TBitmap.create; Bmp2=TBitmap.create; Bmp1.LoadFromFile('...'); Bmp2.PixelFormat =Bmp1.PixelFormat ; Bmp2.Width=800; Bmp2.Height =round(Bmp2.Width*Bmp1.Height/Bmp1.Width); Bmp2.Canvas.StretchDraw(Bounds(0,0, Bmp2.Width,Bmp2.Height), Bmp1); Bmp2.SaveToFile('d:/temp.bmp'); end;
胖 胖熊 Unregistered / Unconfirmed GUEST, unregistred user! 2000-05-12 #7 图片的无级缩放......组件可搞定 http://www.nease.net/~glowing/d_comp/zoompic.zip 适用于Delphi3 - 5