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')
写在最后天气逐渐微寒 。愿这次小小的表白可以给你们带来些许暖意;愿风雨兼程 。不忘归途;愿身能似月亭亭,千里伴君行 。
- 《王者荣耀》4周年限定皮肤原画出炉,李白凤求凰优化返场有望,网友:真香,你怎么看?
- 愚人节搞笑说说简短 愚人节搞笑说说短句
- 被禁播的电影、电视剧、动画片是不是就不存在价值了?你怎么看?
- 中美日将联合改编《西游记》,拍摄动画电影《齐天小太子》。这种改编电影你会看吗?
- 有行家吗?请问这副画值多少钱?
- 有没有画质好,对电脑要求不高,好玩的单机游戏,而且免费的?
- “名家书画”挂在社区街道会有些暴殄天物吗?
- 江南百景图画卷怎么获得 江南百景图画卷怎么得到
- 漫画脚本怎么做?
- 影视剧本与漫画脚本有区别吗?
