我需要数学/算法方面的帮助来拍摄已知尺寸的图像并适合两个屏幕尺寸之一:
720 x 480 或 1280 x 1024。
图像尺寸来自 XML 文件,但这些尺寸是 Web 尺寸,我还从 XML 中选择了一些图像,这些图像的分辨率可能比 Web 尺寸更高或更低。
我想要的是使用网页尺寸的宽高比在高清(1280x720)屏幕上显示更高分辨率的图像(如果可用),或者如果用户在标清屏幕(720x480)上显示该屏幕上的图像。
其他对此有用但优先级较低的事情是,如果我知道图像的分辨率在两个维度上都小于 SD 屏幕(在这种情况下,我所知道的是网络维度和水平维度)图像文件的大小),将其显示为屏幕上的实际大小。
通用的可以是:
Image data: (wi, hi) and define ri = wi / hi
Screen resolution: (ws, hs) and define rs = ws / hs
缩放图像尺寸:
rs > ri ? (wi * hs/hi, hs) : (ws, hi * ws/wi)
例如:
20
|------------------|
10
|---------|
-------------------- --- ---
| | | | 7 |
| | | | | 10
|---------- | --- |
| | |
-------------------- ---
ws = 20
hs = 10
wi = 10
hi = 7
20/10 > 10/7 ==> (wi * hs/hi, hs) = (10 * 10/7, 10) = (100/7, 10) ~ (14.3, 10)
正如您所看到的,它清楚地缩放到屏幕尺寸,因为高度是屏幕的高度,但明显保持了宽高比,因为14.3/10 ~ 10/7
UPDATE
将图像居中,如下所示:
call (wnew, hnew) the new dimensions.
top = (hs - hnew)/2
left = (ws - wnew)/2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)