当前位置:   article > 正文

入门python小工具(2)之生成简单照片墙

入门python小工具(2)之生成简单照片墙

工具功能:

在背景板中按照选择格式粘贴照片形成有规则形状的照片墙

如图

使用介绍:

需要自行准备好背景图片、粘贴入墙的照片和粘贴黑白格式图片(上图的格式图片为梅花)。

按照运行时的输入提示输入文件路径即可。


源代码:

from PIL import Image
import PIL
import os
import random
import time

print("路径可直接复制喔!")
wall_path=input("输入照片墙格式图片的路径:").replace('"','')
back_path=input("输入背景板图片的路径:").replace('"','')
pics_path=input("输入需插入照片墙的照片文件(文件夹)路径:").replace('"','')
img_wall=Image.open(wall_path)#获取选择好的照片墙格式素材
img_back=Image.open(back_path)#获取选择好的背景板图片
imgs_names=os.listdir(pics_path)#获取要加入照片墙内的照片文件名列表

backlen=int(input("确认最终生成照片墙的边长(请输入整数)\n(推荐边长为2000):"))
piclen=int(input("请确认贴入照片墙的照片边长:(请输入整数)\n(推荐边长为100):"))
img_wall=img_wall.resize((int(backlen/piclen),int(backlen/piclen)))
img_back=img_back.resize((backlen,backlen))#设置背景版尺寸
img_wall=img_wall.convert("1")#照片墙转化为二值图片

figure=[]#定义一个空列表准备存放像素信息
for i in range(int(backlen/piclen)):
    row=[]
    for j in range(int(backlen/piclen)):
        pix=img_wall.getpixel((i,j))%254#取模将像素信息简化为1或0
        row.append(pix)
    figure.append(row)#循环结束后,嵌套列表figure已存放每个列表的像素值。figure列表的作用是提供粘贴图片到背景版上所需要的位置信息
row=len(figure)
col=len(figure[0])
#开始粘贴
for i in range(row):
    for j in range (col):
        if figure[i][j]==0:
            imgPath=pics_path+"\\"+random.choice(imgs_names)
            pic=Image.open(imgPath).resize((piclen,piclen))
            img_back.paste(pic,(piclen*i,piclen*j))
save_path=input("请输入最终生成照片墙的保存路径(如C:\\Users\\24909\\Desktop\\picwall.png):").replace('"','')
img_back.save(save_path)
print("生成成功!请在输入的保存路径中查找结果!")
time.sleep(2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

思路:

用户给到的照片墙格式图片的作用是用于获取粘贴图片的位置,使粘贴完成后形成照片墙格式图片的形状。将照片墙格式图片转化为二值图片(二值图片的像素只有0和255,有利于信息转化,代码里将像素值%254,把像素值边长0和1。取模步骤可用可不用)后,就能把像素信息存入嵌套列表figure中。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/632383
推荐阅读
相关标签
  

闽ICP备14008679号