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

本文介绍了如何使用Python代码创建有规则形状的照片墙,包括读取背景板和照片,处理像素信息,以及提供了一个示例源代码。此外,还提到了一份面向Python开发者的全套学习资料,包含了从入门到进阶的学习资源。
摘要由CSDN通过智能技术生成

工具功能:

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

如图

使用介绍:

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

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


源代码:

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)

思路:

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

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

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

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

img

img

img

img

img

img

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

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

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

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

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

img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值