把几张图片铺满一个矩形区域,有什么好的算法可以用?

2015-10-14 11:19:48 +08:00
 pubby

条件:
图片数量不固定( 3-9 张)
每张图片宽高已知(长短边比例在 16:9 ~ 1:1 之间)

目标:
尽量让图片宽高比变化最小(不要裁剪掉太多)
也尽量让各图片尺寸保持均匀(不要有些特别大,有些特别小)

伤脑筋~~

6343 次点击
所在节点    程序员
27 条回复
ybh37
2015-10-14 15:45:14 +08:00
先设置几个模板,将所有的图片按宽高比例适配加载后再等比缩放。
canesten
2015-10-14 15:53:57 +08:00
楼主是指 HTML 页面布局上的解决方案?
pubby
2015-10-14 16:29:00 +08:00
@ybh37 嗯,这是简单的实现方案。


@canesten 不限制在 HTML ,只是算法,最后只要得到每张图的位置和大小即可
canesten
2015-10-14 16:32:40 +08:00
那直接 texture packer 就完了嘛
https://www.codeandweb.com/texturepacker
zongwan
2015-10-14 20:49:58 +08:00
MaxRects
Rectangle Bin Packing
http://clb.demon.fi/projects/rectangle-bin-packing/
之前在做 as3 的时候做过 sprites 工具时研究过

网上有源代码
大概五种算法 最后一种很慢
NP 问题 效果不一
按一定规则排序(个人经验不公开)放入图片 可固定得出近似最优解
随机图片顺序 生成的结果随机
ccswizard
2015-10-14 22:24:30 +08:00
装箱算法?
pubby
2015-10-15 00:52:32 +08:00
@zongwan 谢谢,我去看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/227900

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX