用 python 制作心型照片墙
你好~ 我是 36 度道,人生苦短,我用 python!今天分享如何用 python 制作好看的心型照片墙
效果
我们先来看下效果图,了解我们接下来要做的事情,我的效果图如下:
感觉如何?如果还满意,看完幸苦点个赞,因为看完你也可以做出来!同时也是对我的一种反馈
思路
上代码之前,我们先来理清下思路,只有过程理清楚了,才能得到自己的想要的结果
制作这个我觉得最难的地方就在于每个图片的位置该怎么计算,才能凑成一个心型。但是没关系,我们不去计算,毕竟我数学很差,我采用土办法,直接把它位置写死,虽然稍微有点麻烦,但是灵活~
大家都知道 excel 吧,里面的表格是由一个个单元格组合而成,那请你也把上面的图想象成表格,是由很多单元格组成的,单元格的大小就是图片的尺寸,并且去掉了边框。那么制作这个心型,只要在单元格内添加单个图片,然后凑成心的形状就完成了。这就是整体的思路,接下来用代码去实现这个思路
准备
我先说下制作过程要使用哪些 python 库,工具总要先搞好,不然搞个 der~
1、pillow:用来处理图片的库,属于第三方库,需要额外安装 pip install pillow
2、os:用来获取图片,python 自带,不用额外安装
3、math:用来计算图片数量,python 自带,不用额外安装
有上面三个库就可以了,接下代码走起
代码
1、导库
2、制作形状
我们通过二维数组确定图片的位置,每个元素相当于 excel 中的单元格:1 代表空白,0 代表图片。看到由 0 组成的爱心了嘛?这里纯手打(所以你可以自由改动,做出你想的形状,这就是灵活的地方~)
因为我图片有 500 张,所以我想做大一点,放更多的图片,所以元素的个数会比较多,下面是 21x21 的大小。
记住:0 的个数一定要比你的图片数量少或刚好相等,否则就不是一个完整的爱心了!
3、导入图片
位置确定好了,开始获取所有的图片
画图
接下来就是准备一个白色的背景,当作画布。有了行数、列数和图片的宽高,就可以计算出整个画布的尺寸了
到目前为止,图片和画布都已经准备好了,现在就是将图片放置在画布对应的位置上了,即数组中元素为 0 的位置
到此,心型照片墙就制作出来了,如果你有女朋友,可以用自己女朋友的照片,背景用红色,然后发给你女朋友看,会不会更爱你我就不知道了,也可以写个 i love you~(图如下)。可惜我没有,好气哦!
版权声明: 本文为 InfoQ 作者【36度道】的原创文章。
原文链接:【http://xie.infoq.cn/article/fd0a4d86ca910d51fd6f6ca48】。文章转载请联系作者。
评论