观众老爷们,小李今天给大家展示一下我“精湛”的厨艺。如题所示,花式照片墙这道小菜马上给大家端上来,大家吃好喝好。
原材料准备:
- Python3,图片(最好是某一类图片,一家人整整齐齐)
- 这里我使用的是“脆皮鹦鹉”表情包,高糊却又不失档次。
佐料:
- pillow模块,以及一些Python自带的模块
原材料处理:
- 咱先来处理一下原材料。把这些图片的大小尺寸给整齐划一了,方便操作,也更加美观。这里用到了 resize 函数。统一修改为64X64大小。同时,为了方便对这些图片进行操作,给这些图片按照自然数的顺序来重新命名。
class ImageRename():
def __init__(self):
self.path = 'D:/parrot'
def rename(self):
filelist = os.listdir(self.path)
total_num = len(filelist)
i = 0
for item in filelist:
if item.endswith('.jpg'):
src = os.path.join(os.path.abspath(self.path), item)
dst = os.path.join(os.path.abspath(self.path), str(i) + '.jpg')
os.rename(src, dst)
print('converting %s to %s ...' % (src, dst))
i+=1
print('total %d to rename & converted %d jpgs' % (total_num, i))
模具打造:
- 为了能让端上来的美食有一个完美的形象,打造一个好的模具是很重要的。而模具的构造,我们可以人工手动生成,也可以选择用代码自动化生成。
- 想必大家也能看得出来这是个爱心的轮廓,这个轮廓线由“1”连接形成。下面这段代码可以生成闪电形状。
with open ('3.txt','w') as f:
for i in range(3,-4,-1):
for j in range(-3,4):
f.write('1,') if i<=j+3 and i>=j-3 and i*j<=0 else f.write('0,')
f.write('\n')
(PS:更多的模板可以由你自己来创造~)
东西都准备好了,我们可以把这个菜炒起来了!
照着刚刚的模具,即读取模板文件。我们利用 paste 函数在模板是“1”的位置放入图片,“0”的位置就不做操作。
def main(pictures_dir, template_path):
template = parseTemplate(template_path)
w = len(template[0])
h = len(template)
image_new = Image.new('RGBA', (CELLSIZE*w, CELLSIZE*h))
img_idx = -1
for y in range(h):
for x in range(w):
if template[y][x] == '1':
img, img_idx = yieldImage(pictures_dir, img_idx, (CELLSIZE, CELLSIZE))
image_new.paste(img, (x*CELLSIZE, y*CELLSIZE))
image_new.show()
image_new.save('picturewall.png')
出炉
裹上鸡蛋液,粘上面包糠,
放进油锅炸至两面金黄,
老人小孩都爱吃,
隔壁小孩都馋哭了。
- 等上片刻,我们的菜就新鲜出炉啦。有甜蜜双人套餐
- 有油炸三叶草
- 有霹雳便当
- 另外代码和脆皮鹦鹉的表情包合集后台回复 「鹦鹉」 即可获取
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。