作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要数学/算法方面的帮助来拍摄已知大小的图像并适合两个屏幕尺寸之一:
720 x 480 或 1280 x 1024。
图像尺寸来自 XML 文件,但这些尺寸是网络尺寸,我还从 XML 中选择了一些图像,这些图像的分辨率可能比网络尺寸更高或更低。
我想要的是使用网络尺寸的宽高比在高清 (1280x720) 屏幕上显示更高分辨率的图像(如果可用),或者,如果用户使用的是标清屏幕 (720x480),则显示图像在那个屏幕上。
其他对此有用但优先级较低的事情是,如果我知道图像的分辨率在两个维度上都小于 SD 屏幕(在这种情况下,我只知道网络维度,并且图像文件的水平尺寸),以在该屏幕上显示为实际尺寸。
最佳答案
尽可能通用:
图像数据:(wi, hi) 并定义 ri = wi/h 我
屏幕分辨率:(ws, hs) 并定义 rs = ws/h s
缩放图像尺寸:
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
更新
居中图像如下:
调用 (wnew, hnew) 新维度。
top = (hs - hnew)/2
left = (ws - wnew)/2
关于algorithm - 数学/算法 使图像适合屏幕并保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565703/
我有一张 table 。我希望它的数据垂直和水平居中。 我使用了 align="center"valign="middle" ,但它没有用。
我是一名优秀的程序员,十分优秀!