我的目标是从给定数量的尺寸中选择最合适的图像尺寸。
给定一些相当随机的分辨率,我想找到一个尺寸尽可能接近我首选尺寸的图像。
假设我想使用尺寸为宽 x 高 ( preferredImageSize
) 的图像。
示例:320x200
假设我可以使用以下图像尺寸 ( availableImageSize
) width1 x height1, width2 x height2, ...(可能多达 10 种不同的尺寸)。
示例:474x272、474x310、264x150、226x128、640x365、474x410、480x276、256x144、160x90、320x182、640x365、192x108、240x137、480x276
为了开发一些通用的方法来制作preferredImageSize
变量,我试图找到一个很好的解决方案,它计算得相当快,但也会产生在屏幕上看起来不错的东西。
我将在屏幕上看起来不错的图像定义为:
- 几乎没有升级
- 尽可能接近给定的纵横比 (
preferredImageSize.width / preferredImageSize.height
) - 可能会大幅缩减
- 可能会被裁剪/拉伸非常少量
我最初的(相当微不足道的)方法:
遍历可用的图像尺寸一次并找到最小的宽度增量 ( abs(preferredImageSize.width - availableImageSize.width)
)。然后选择具有最小增量的图像 ( bestFitWidth
)。
那当然是解决问题的一种方法,但绝对不符合我在屏幕上看起来不错的希望。
任何提示,无论是文本、来源还是链接都会很棒。哦,如果您认为我的要求(又名希望)已经导致错误的方向,请继续,让我知道...
编辑:添加裁剪和拉伸作为选项 - 恐怕这会使问题更难解决。因此,如果需要,请将其排除在等式之外。