1

我正在努力将所有图像变成更大的图像;缩放在外部应用(可以是多种事物之一,而不是中继到图像)。这些是我目前正在采取的步骤:

  1. 计算大图像的大小(比如 1000x1000)

  2. 为数组中的每个图像计算纵横比。(它们都是不同的)

  3. 找到它需要的比例(比如总图像的 6%)

  4. 取总图像大小/纵横比的平方根以找到一维

  5. 将我们知道的边乘以纵横比得到另一个维度。

  6. 将图像缩小到新的计算值

  7. 现在这是我遇到麻烦的地方)在较大的图像上找到一个适合缩放图像的空间。如果有多个随机选择一个。

  8. 重复直到图像被填满。大约有 4000 张图像需要适应。

有很多非常小的图像(1x1、2x1 2x2 等)可用于填充。问题是随机方法和第一个空间方法不是很好,通常最终会出现一些不适合的图像。

有没有一种算法可以在知道所有涉及的尺寸的情况下选择放置图像的最佳位置?旋转很好(所以 100x50 可以视为 50X100)

我目前正在使用 Java,但该问题适用于任何语言。

4

1 回答 1

1

您正在研究的算法属于称为整数编程的领域。这是一类优化问题的解决方案,其中所有输入都是整数(而不是实数)。您要询问的具体问题名为bin packing此页面上有关于此问题的示例代码。

于 2012-11-09T19:43:05.863 回答