3

我正在处理图片库,我想紧紧地打包图片缩略图。缩略图是:

  • 不同的纵横比
  • 在相同的源分辨率下可用(最长边 256 像素)

我想提出一个最佳解决方案(可能必须是启发式的),让我能够平衡:

  • 每个缩略图之间的填充(最好是恒定的)
  • 缩略图大小的一致性(最好都是相同的大小)
  • 为显示裁剪的每个图像的数量(最好没有)
  • 与其排序顺序一致的图像的接近度(最好排序邻居在网格中彼此靠近)

我认为这是矩形包装问题的变体。

我找到了一些很好的参考:Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites

但我想咨询专家,看看是否有人知道:

  • 任何公开可用的既定算法,
  • 任何实现它们的开源库或
  • 任何其他可能帮助我产生与以下内容一样好的数学参考或指导:http: //labs.tineye.com/multicolr#colors=4b669e ;weights=100 ;
4

1 回答 1

2

我想出了这样的东西(现在也有 github 上的代码) https://mendrik.github.io/diorama/

我应该补充一点,顺序是随机的,尺寸尽量统一,但对我来说,填满整个空间比保持尺寸一致更重要。您可以调整浏览器窗口的大小以查看其工作方式。

如果您的身高不固定,还有其他几种选择,主要是背包或分区算法。2d bin 支持会给您留下空白或找不到始终适合所有图像的解决方案。

我的算法几乎没有裁剪,并且总是适合所有图像到给定的空间,只要有足够的组合可以这样做。图像越少,裁剪越明显。

于 2014-08-15T10:57:54.177 回答