简要说明
我目前正在构建一个包含三列的画廊,每列包含的图像都具有相同的宽度,但高度可以不同。
glob()
列的图像从目录中收集并使用 PHP函数放入数组中。这是简单的部分...
画廊的外观示例:
问题
由于这些图像被动态加载并放置到列中,因此列的高度可能会有很大差异。
例如,如果将两张肖像照片放在第 1 列中,而将两张风景照片放在第 2 列中,那么这些列将非常不均匀,如下所示:
列的高度不太可能匹配,但我希望它们与给定的图像尽可能接近,因此想形成一个算法来查看检索到的图像并将它们放在列中返回尽可能接近高度的三列。
因此,例如,脚本将通过重新排序图像并像这样放置它们来纠正上述问题:
如果我有正确的算法,我可以写这个,我只是想不出最好的步骤来做到这一点。任何人都可以建议任何步骤吗?
可能的解决方案
我想到的一种方法(我认为会有更好的方法,因为我认为这是有缺陷的):
- 将所有图像的高度相加,然后除以列数 (3)。这将为我们提供目标高度
- 将图像分配到列数组,当它超过列的高度时,溢出到下一列。
- 将任何剩余的图像放入第一列,然后是第二列等...
提前致谢