将许多矩形图像合并并调整为正方形图像

Combine and resize many rectangle images into a square image

提问人:Zoltan Botto 提问时间:3/9/2023 最后编辑:DanZoltan Botto 更新时间:3/19/2023 访问量:223

问:

我有数千种带有图像的可变产品。我必须将 3 或 4 或......14张图片变成一张主图片,形状几乎或完全是正方形。我想尽可能地填充正方形区域。因此,如有必要,也可以单独调整图像大小。 困难在于我必须处理不同数量和大小的图像。

我使用 php 和 imagick,但现在我对一个想法(或伪代码或其他东西)感到满意。

基本问题: 我有不同大小的矩形,我想尽可能地填充一个正方形,而不会重叠。 不允许矩形旋转。允许逐个调整大小。 第二个要求是我希望一张图像的至少一侧应大于正方形边缘的三分之二。其他矩形不应太小。

5 张图像的示例: 图像尺寸:

  1. 约1172 x 1250
  2. 约1211 x 1250
  3. 约1133 x 1250
  4. 约1250 x 730
  5. 约1118 x 1250

一种解决方案:

5rectangles.jpg

最终的正方形有多大并不重要。 还有完全不同比例的图片,例如 353 x 1250、120 x 1320、487 x 1220 等。

我考虑过面积和边长,但我找不到一个已经可以用于各种大小和数字的矩形的解决方案。

提前致谢!

php 数学 imagick 矩形

评论

0赞 Community 3/10/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。
0赞 Mike 'Pomax' Kamermans 3/10/2023
但是,您在这里遇到的实际问题是什么?最简单的方法是不要浪费时间和数学,而是“如果我需要五张图像,我的正方形应该有以下区域:......”然后只需将一张图像放入每个区域,根据需要裁剪图像以适应其空间。因为如果保留原始尺寸很重要,您就不会将它们捣碎成一张图像,只需放置它们并剪掉会溢出的部分 =)
0赞 Zoltan Botto 3/10/2023
对不起,如果我措辞错误。正方形内图像的大小无关紧要,但重要的是要保持所有图像的原始纵横比。不允许切割它们。这些是尺寸和数量完全不同的产品图片。彩色矩形以原始比例象征产品图像。
0赞 Diego D 3/10/2023
你所描述的在网页设计中被称为砌体布局。很遗憾,我无法为您提供图片转换的解决方案,以将 imagick 库组合成一张图片,但这是唯一的选择吗?
0赞 Zoltan Botto 3/10/2023
我考虑过砌体布局,但它不受垂直限制,我需要一个方形布局。但目前我也在考虑类似的列和行的排列。对我来说重要的是方法,而不是特定的php或imagick代码。

答: 暂无答案