我正在努力将所有图像变成更大的图像;缩放应用于外部(可以是多个事物中的一个,而不是中继到图像)。这些是我现在正在采取的步骤:
计算大图像的尺寸(比如1000x1000)
对于阵列中的每个图像,计算纵横比。 (他们都不同)
找到所需的百分比(比如总图像的6%)
取总图像大小/宽高比的平方根来查找一个维度
将我们所知道的方面乘以宽高比以获得另一个维度。
将图像缩小到新的计算值
(现在我遇到麻烦的地方)在较大的图像上找到一个适合缩放图像的空间。如果有多个随机选择一个。
重复直到图像填满。大约有4000张图片需要放入。
有很多非常小的图像(1x1,2x1 2x2等)可用于填充。问题是随机方法,第一个空间方法不是很好,通常最终得到一些不适合的图像。
是否有一种算法可以选择最佳位置来让图像知道所涉及的所有维度?旋转很好(所以100x50可以被视为50X100)
我目前正在使用Java,但问题适用于任何语言。
答案 0 :(得分:1)
您正在查看的算法属于称为整数编程的字段。这是一类优化问题的解决方案,其中所有输入都是整数(而不是实数)。您询问的具体问题是名称bin packing。 this page上有关于此问题的示例代码。