我刚刚写完一个小脚本,将很多png图片组合成 CSS Sprite 的一个更大的。
基本上,我有一个维度列表 [(w1,h2), ..., (wn,hn)] 我需要将它们放入尺寸为 (W,H) 的框架中,其中 WH 为 尽可能小。 (当然不能重叠)
我使用的启发式显然不是最佳的。我想知道 您对这个主题有什么想法吗? 您是否认为有一些更聪明的约束,例如将图像分组 类似的直方图会使 png 变小?
最佳答案
从你提出问题的方式来看,你想要优化的是图片的尺寸还是PNG文件的大小并不明显,因为图片直方图不会影响它们的尺寸(宽度和高度)。
但是,找到最小 K 使得 max(W, H) < K,以便所有图片都可以放入 W 宽和 H 高的矩形区域中,这是一个 NP 完全问题,这意味着它一般情况下很难很好解决。例如,参见here .
关于algorithm - 有点平铺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642901/