importosimportrandomimportnumpyasnpimportPIL.ImageasImage1234
定义绘制图形的框架(用二维数组表示):
FRAME=[[0,1,1,0,0,0,0,1,1,0],[1,1,1,1,0,0,1,1,1,1],[1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1,1,0],[0,0,1,1,1,1,1,1,0,0],[0,0,0,1,1,1,1,0,0,0],[0,0,0,0,1,1,0,0,0,0]]
这里大家完全可以发挥自己的想象 。画你心中所想其中 。0表示不进行填充 。1表示用头像进行填充 。
定义相关参数 。包括每张用于填充的头像的大小、每个点位填充的次数等:
#定义相关参数SIZE=50#每张图片的尺寸为50*50N=2#每个点位上放置2*2张图片#计算相关参数width=np.shape(FRAME)[1]*N*SIZE#照片墙宽度height=np.shape(FRAME)[0]*N*SIZE#照片墙高度n_img=np.sum(FRAME)*(N**2)#照片墙需要的照片数filenames=random.sample(os.listdir('./avatars(dr)'),n_img)#随机选取n_img张照片filenames=['./avatars(dr)/'+fforfinfilenames]
遍历FRAME 。用头像对背景图片进行填充:
#绘制爱心墙img_bg=Image.new('RGB',(width,height))#设置照片墙背景i=0foryinrange(np.shape(FRAME)[0]):forxinrange(np.shape(FRAME)[1]):ifFRAME[y][x]==1:#如果需要填充pos_x=x*N*SIZE#填充起始X坐标位置pos_y=y*N*SIZE#填充起始Y坐标位置foryyinrange(N):forxxinrange(N):img=Image.open(filenames[i])img=img.resize((SIZE,SIZE),Image.ANTIALIAS)img_bg.paste(img,(pos_x+xx*SIZE,pos_y+yy*SIZE))i+=1#保存图片img_bg.save('love.jpg')
写在最后天气逐渐微寒 。愿这次小小的表白可以给你们带来些许暖意;愿风雨兼程 。不忘归途;愿身能似月亭亭,千里伴君行 。
推荐阅读
- 大家平时在哪个app买书?
- 好看的变身小说男变女玄幻 变身为女性的玄幻小说
- 有哪些正版图书的APP?
- 大佬们能否推荐一些内容比较丰富的国漫?
- dnf冰结师100级加点,dnf冰结师技能加点推荐
- 科幻网络小说有什么可以推荐的?
- 苏州十大酒吧排行榜介绍 苏州最劲爆最嗨的酒吧
- 大家分享一下最值得推荐的科幻小说?
- 走了那么多弯路还是没有学好中医,怎么办?