我希望得到显示用TImage中的图像电流的大小,此对象具有比例属性设置为true,并对准客户端与主要形式。 因此,调整的形式,当我想要得到的电流大小的形象,而不是画布大小也不该图像的实际尺寸。 获取当前大小,我可以告诉什么是当前的图像尺寸对于实际图像大小的百分比。 提前致谢
Answer 1:
你可以用Image1.Width或.Height比较Image1.Picture.Width或.Height。
要知道,如果图像streched比例使用水平或垂直尺寸,你应该比较两个比例的:
if Image1.Width/Image1.Height > Image1.Picture.Width/Image1.Picture.Height then
Result:=Image1.Picture.Width/Image1.Width
else
Result:=Image1.Picture.Height/Image1.Height;
使用数学技巧的分歧转化为乘法,就能避免转换成浮点值,这也算有点快使用:
if Image1.Width*Image1.Picture.Height >Image1.Picture.Width*Image1.Height then
Answer 2:
我不认为有一个内置的方式做到这一点。 您可能只需要计算。 事情是这样的:
- 获取画布的高度和宽度。
- 获取图像的高度和宽度的
Picture
属性。 - 计算图片的尺寸的比率到画布的尺寸。
- 这两个比率以较小者是你的百分比。
Answer 3:
加载这幅画变成一个虚拟的TCanvas(或其他),然后离开酒店,比例为假。 现在,您可以检索图片的原始大小。 如果图像通常是非常大的,也许你应该使用一些外部图形库。
文章来源: How to get the current view size for an image in Delphi 2009