Python使用Pillow批量将图片粘贴至背景图并保存
本文介绍如何利用Python的Pillow库实现图片的批量合成。通过遍历源图片文件夹,将每张图片缩放至指定尺寸后,随机粘贴到背景图上,并自动保存为新的图像文件。代码包含处理不同宽高比背景图的逻辑,确保粘贴位置不超出边界,适合需要批量生成合成图片的场景。
Pillow 是一个功能强大的 Python 图像处理库。
本文演示如何使用 Pillow 库,将指定文件夹内的多张图片随机粘贴到另一张背景图片上,并将结果批量保存至目标文件夹。
具体实现代码如下:
from PIL import Image
import os
import random
def handle_img(imgdir,imgFlodName):
imgs = os.listdir(imgdir+imgFlodName)
imgNum = len(imgs)
print(imgNum)
for i in range(imgNum):
img1 = Image.open(imgdir + imgFlodName + "/" + imgs[i])
img = img1.resize((102,102)) #将图片调整到合适大小
oriImg = Image.open("F:/Download/111.jpg") #打开图片
image = oriImg.size # 获取图片大小尺寸
# oriImg.paste(img, (image[0]-102, image[1]-102))
if image[0]<image[1]: # 判断宽高大小 因为若是不作处理的话,在粘贴到随机位置时可能会沾到图片外的位置。
oriImg.paste(img,(random.randint(0,image[0]-102),random.randint(0,image[0]-102)))
else:
oriImg.paste(img, (random.randint(0, image[1]-102), random.randint(0, image[1]-102)))
oriImg.show()
oriImg1 = oriImg.convert('RGB')
oriImg1.save("F:/Download/sign_data"+"/"+str(i)+".jpg")
imgdir = "F:/Download/"
imgFlodName = "v2.0sign_picture"
handle_img(imgdir,imgFlodName)
若需将一组图片随机粘贴到另一组背景图片上并保存,只需在外层循环基础上增加一个遍历背景图的循环即可。
相关代码如下:
from PIL import Image
import os
import random
def handle_img(imgdir,imgFlodName,img_path):
imgs = os.listdir(imgdir+imgFlodName)
imgNum = len(imgs)
print(imgNum)
image_ori = os.listdir(img_path)
image_Num = len(image_ori)
print(image_Num)
for i in range(imgNum):
img1 = Image.open(imgdir + imgFlodName + "/" + imgs[i])
img = img1.resize((102,102))
for j in range(image_Num):
oriImg = Image.open(img_path + "/" + image_ori[j])
image = oriImg.size
# oriImg.paste(img, (image[0]-102, image[1]-102))
if image[0]<image[1]:
oriImg.paste(img,(random.randint(0,image[0]-102),random.randint(0,image[0]-102)))
else:
oriImg.paste(img, (random.randint(0, image[1]-102), random.randint(0, image[1]-102)))
oriImg.show()
oriImg1 = oriImg.convert('RGB')
oriImg1.save("F:/Download/sign2_data"+"/"+str(i)+".jpg")
imgdir = "F:/Download/"
imgFlodName = "v2.0sign_picture"
image_path = "F:/Download/image"
handle_img(imgdir,imgFlodName,image_path)
以上介绍了使用 Python 批量处理图片粘贴并保存的方法,供参考。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













