2012-10-01 124 views
2

我正在处理图像库,我想紧紧打包图像缩略图。缩略图:紧凑图像缩略图的布局算法

  • 不同的纵横比
  • 可在同一信号源的分辨率(长边256个像素)

我想拿出一个最佳的解决方案(可能要是一种启发式的),让我平衡:

  • 填充每个缩略图(优选恒定)
  • 与c之间缩略图大小(优选全部相同大小)的一致性
  • 为显示器裁剪的每幅图像的数量(最好没有)
  • 图像与其排序顺序一致(最好是排序邻居将接近一另一个在网格中)

我认为这是rectangle packing problem的变体。

,我发现了一些很好的参考:Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites

但我想与专家进行检查,看是否有人都知道:

+0

我想知道是否需要创建某种神经网络,其中每个平衡点成为节点上的权重(Wikipedia:[link](http://en.wikipedia.org/wiki/Neural_network ))。 – stanhope

+0

如果您考虑单列图像,问题就会变得非常简单。没有包装,可能会将两幅肖像图像彼此相邻,只保留一行图像。当我介绍第二列时,现在每张图片只能放置几个位置(在1下面,在2下面,在1旁边,在2旁边)。也许这是构建可能是复杂算法的最简单方法? – stanhope

+0

不要在评论中写下你的问题的解释,编辑你的问题。SO上的很多人不会阅读评论,主要是他们不是非常有用,我们很多人都将其过滤掉。 –

回答

1

我想出了这样的事情(现在也有在GitHub代码) http://www.feather-ts.com/gallery/

我要补充的是,为了将是随机的,大小尽量均匀,但对我来说填补整个空间更重要,而不是保持尺寸一致。您可以调整浏览器窗口的大小以查看它的工作原理。

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

我的算法几乎不裁剪,并且只要有足够的组合就可以将所有图像放入给定的空间。显得越少,图像越少。

+0

这是非常令人印象深刻的安德烈亚斯。它的工作非常好。我不清楚它是否是1)公开可用的任何已建立的算法,2)实现它们的任何开源库,或3)任何其他数学参考或指导。没问题,如果它是一个令人难以置信的酷演示。 – stanhope

+0

够公平的。祝你好运。 – stanhope