09月22日, 2014 175次
sp;in range(SideLength * SideLength): if images_side_calc(col, row): img = Image.open(random.choice(self.image_list)) img = img.resize((128, 128), Image.ANTIALIAS) else: img = Image.new( RGB , (128, 128), (255, 255, 255)) heart_image.paste(img, (row * 128, col * 128)) col += 1 if col == SideLength: col = 0 row += 1 if row == col == SideLength: break heart_image.save( heart_image.jpg )
我们先创建一个空的画布,然后规定每张图片的固定尺寸为128X128,然后我们按照红框的计算,动态填充图片或者白色的幕布。最终将图片合成保存。
至于如何计算心形,除了最后的三角形有规律可循,上面的几行,只能每行去单独判断了images_side_calc方法如下:
def images_side_calc(row, col): if row == 0 and col in [1, 2, 6, 7]: return True elif row == 1 and col not in [3, 4, 5]: return True elif row == 2 and col != 4: return True elif row in [3, 4]: return True elif row = 5 and (row - 5) col (13 - row): return True
最终效果如下:
大家可以看到,由于我只使用了37张图片,所以会出现一些随机重复的图片,大家使用的话,可以多选择一些照片,效果会更好一些!
打包为exe文件
既然工具写好了,当然要方便那些没有python环境的人们使用啊,使用pyinstaller打包工具,无需依赖python环境,双击exe输入图片存储地址,皆可完成心形照片墙的绘制:
感谢各位的阅读,以上就是“怎么用Python在520俘获女神芳心”的内容了,经过本文的学习后,相信大家对怎么用Python在520俘获女神芳心这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!