欢迎光临散文网 会员登陆 & 注册

用Python写一个图片整合工具(后记)

2021-04-14 09:18 作者:刹那-Ksana-  | 我要投稿


Pixiv上来自各地的大神的作品

上一个文章的末尾留下一个问题,就是如何有效地利用空间。其实那时候写完最后一行的时候,我脑海里面浮现的是knapsack——如何在有限的空间里面装最大价值的物品;但是回头仔细一想,发现,这个问题和最优问题毫无关联。因为我生成的图片没有限定空间,图片可以无限制的往下延伸,所以我只需要把中间的空白给填满就行了。

于是就有了以下的代码(我还在源代码的基础上做了一些功能性调整):

算上空白行一共72行,依旧非常简洁,不愧是Python。

在这里我用一个greedy的方法,将一张一张的图片往低处填,就像是玩俄罗斯方块那样。

但是这个greedy的办法不是最好的,因为设想我有100张小图片和1张超长图片,如果超长图片最后一个放下去,那么他就会占用非常多的额外空间,因此,事先对所有图片的长度从大到小进行排序,然后再一个一个放下去会更好。

最后在计算完每一个图片的位置之后,用numpy生成一个大矩阵,然后将所有数据对号入座。

THE END.

用Python写一个图片整合工具(后记)的评论 (共 条)

分享到微博请遵守国家法律