【python】利用python批量处理将图片粘贴到另一张图片上并保存

本文详细介绍如何使用Pillow库批量调整图片大小,随机粘贴图片到指定背景,并批量保存至目标文件夹。通过双层循环,实现了从一组图片集中随机选取并粘贴到另一组图片上,极大提升了图片处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pillow真的是一个很强大的图像处理库!!!!

本人利用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)

接下来,实现将文件夹下一组图片随机粘贴到另一个文件夹下的一组图片上,并保存!!!其实就是再加一个for循环就可以了!!!

直接上代码:

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)

转载请注明出处!!!

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值