如何获得当前视图大小德尔福2009年的图像(How to get the current view

2019-09-23 03:01发布

我希望得到显示用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:

我不认为有一个内置的方式做到这一点。 您可能只需要计算。 事情是这样的:

  1. 获取画布的高度和宽度。
  2. 获取图像的高度和宽度的Picture属性。
  3. 计算图片的尺寸的比率到画布的尺寸。
  4. 这两个比率以较小者是你的百分比。


Answer 3:

加载这幅画变成一个虚拟的TCanvas(或其他),然后离开酒店,比例为假。 现在,您可以检索图片的原始大小。 如果图像通常是非常大的,也许你应该使用一些外部图形库。



文章来源: How to get the current view size for an image in Delphi 2009