Php 将大量图像分组

Php 将大量图像分组,php,image,optimization,image-processing,Php,Image,Optimization,Image Processing,有没有什么算法可以将许多不同尺寸的小图像排列成一个较大的图像? 有人知道我应该从哪里开始调查吗 编辑: 基本上,我想用PHP制作类似的东西。我真的没想到会这么复杂。 如果有什么不同的话,我会将该图像用作CSS精灵。我认为这被称为马赛克,因此您可以从查找该图像开始。 一般来说,这是一个很难计算的问题,但存在近似解 编辑:相关问题 对于您的问题来说,使用优化算法可能是一种过分的手段。编码一个优化算法需要大量的预先研究。即使实现一个现成的库也可能是一个需要解决的大问题 你可以自己设计一个启发

有没有什么算法可以将许多不同尺寸的小图像排列成一个较大的图像? 有人知道我应该从哪里开始调查吗


编辑: 基本上,我想用PHP制作类似的东西。我真的没想到会这么复杂。
如果有什么不同的话,我会将该图像用作CSS精灵。

我认为这被称为
马赛克
,因此您可以从查找该图像开始。

一般来说,这是一个很难计算的问题,但存在近似解

编辑:相关问题

对于您的问题来说,使用优化算法可能是一种过分的手段。编码一个优化算法需要大量的预先研究。即使实现一个现成的库也可能是一个需要解决的大问题

你可以自己设计一个启发式:
使用大图像的宽度和高度作为输入。
想象一下,好像你把每一行都填满了,然后在这一行填满后继续到下一行。 然后开始逐个插入图像

如果使用算法,最终图像将更加优化。尺寸较小。但是,如果你的图像在尺寸上没有太大的变化,那么差异就不会有太大的不同


如果图像尺寸变化不大,请根据变化最大的尺寸(宽度或高度)进行排序。然后开始按顺序插入图像。

是否将生成的图像用作css精灵?如果只插入一次,则不需要算法。有很多CSS精灵程序。即使你使用了一种效率很低的方法(因此它会创建一个更大尺寸的图像),它也不会有多大的影响;大部分被浪费的空间都是相同的颜色,并且可以很好地压缩,所以你的整体图像大小不会太大。使用客户端缓存,他们只会下载一次映像。。。所以不要在这个问题上浪费太多时间。哎呀,
square+packing+problem
链接到
square+packing+algorithm
。这个问题是第三个结果:)这很普遍,在谷歌也很受欢迎。