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