Python 给图片批量加logo+logo透明化

使用Python的PIL库实现批量给图片添加logo,并调整logo为透明效果。代码中定义了`trans_PNG`函数来实现图片透明化,然后通过循环遍历指定数量的图片,将logo添加到每张图片的左上角并保存。最终生成带有logo的透明图片。
摘要由CSDN通过智能技术生成

利用Python 给图片批量加logo+logo透明化

通过图片上新建图层 把logo水印图片添加到图层 并合并

from PIL import ImageDraw
from PIL import Image
#图片透明化
def trans_PNG(initial_pic, new_pic):
    '''
    to get a transparent picture
    :param initial_pic: initial picture's path
    :param new_pic: the transparent picture's path
    :return:
    '''
    img = Image.open(initial_pic)
    #将图片转换为四通道,而第四个通道是我们要修改的透明度,
    #值可以设置成0-255之间的值,透明度会不太一样,看脑洞有多大咯。
    img = img.convert("RGBA")
    x, y = img.size
    for i in range(x):
        for j in range(y):
            #取四个通道的值,然后用切片取前三个不变,最后一个改为240
            color = img.getpixel((i, j))
            color = color[:-1] + (240,)
            img.putpixel((i, j), color)

    #将白色及近似白色的地方改成半透明
    datas = img.getdata()
    new_data = list()
    for item in datas:
        if item[0] > 220 and item[1] > 220 and item[2] > 220:
            new_data.append((255, 255, 255, 100))
        else:
            new_data.append(item)
    img.putdata(new_data)
    img.save(new_pic, "PNG")

    return new_pic
trans_PNG("logo.png", "image.png")
#trans_PNG("logo文件名","生成透明化logo文件名")

i = 1
while i <247:  #图片张数
    im = Image.open(str(i)+'.jpg')  # 批量打开图片,图片命名为1-n.jpg
    im1= Image.open('image.png')  # 打开水印图片
    position = (0,0) # 默认设定水印位置为左上角
    layer = Image.new('RGBA', im.size)  # 新建一个图层
    layer.paste(im1, position)  # 将水印图片添加到图层上
    im2= Image.composite(layer, im, layer)#合并图片
    im2.save('./logopic/'+str(i)+'.jpg') #保存图片——保存路径+保存文件名
    print('已保存图片./logopic/'+str(i)+'.jpg')
    i+=1

图片透明化代码参考

https://cloud.tencent.com/developer/article/1487868

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习DePeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值