python给指定目录所有图片添加水印logo,批量生成替换文件,自适应图片大小添加到图片正中间

首先需要安装PIL,pip install

2.x的版本安装
pip insall PIL

3.x的python版本安装
pip install pillow

实现功能步骤:
1、读取指定目录jpg或png图片
2、给图片加入水印(可以自动选择不同水印)
在这里插入图片描述

from PIL import Image
import os,time

#将logo自动自适应图片大小,添加到图片正中间
def pic_add_logo(imagefile,addlogo,savename):
    im = Image.open(imagefile) 
    mark=Image.open(addlogo)
    remark = mark.resize((im.size[0],im.size[1]),Image.ANTIALIAS)
    layer=Image.new('RGBA', im.size, (0,0,0,0))
    layer.paste(remark, (im.size[0]-remark.size[0],im.size[1]-remark.size[1]))
    out=Image.composite(layer,im,layer)
    #out.show()
    out.save("c:/users/jianl/desktop/"+savename)

def os_findall_files(rootdir,logofile):
    files = os.listdir(rootdir)    #列出xls文件夹下的所有文件
    num = len(files)    #列出所有文件的个数
    for i in range(num):    #按文件个数执行次数
        kname = os.path.splitext(files[i])[1]   #分离文件名与扩展名,返回(f_name, f_extension)元组
        if kname == '.jpg' or kname == '.png':                     #判定扩展名是否为xls,屏蔽其它文件
            imagefile = rootdir + files[i]
            savename = files[i]
            pic_add_logo(imagefile,logofile,savename)



text = '''
请输入您希望添加那种水印标识的对应【数字编号】!
【经典记录】-对应数字为【1】
【灾难记录】-对应数字为【2】
【经典电影】-对应数字为【3】
【绝地求生】-对应数字为【4】
【 DOTA 2】-对应数字为【5】
请输入:
'''

input_num = int(input(text))

print("您选择的数字是:" + str(input_num))

fliepath = "C:/Users/jianl/Desktop/" #目标目录
#下面为不同的水印logo,png图
jingdianjilu = 'd:/自媒体文件/封面常用水印/经典记录.png'
jingdiandianying = 'd:/自媒体文件/封面常用水印/经典电影.png'
zainanjilu = 'd:/自媒体文件/封面常用水印/灾难记录.png'
juediqiusheng = 'd:/自媒体文件/封面常用水印/绝地求生.png'
dota2 = "d:/自媒体文件/封面常用水印/DOTA2.png"

if input_num == 1:
    os_findall_files(fliepath,jingdianjilu)
elif input_num == 2:
    os_findall_files(fliepath,zainanjilu)
elif input_num == 3:
    os_findall_files(fliepath,jingdiandianying)
elif input_num == 4:
    os_findall_files(fliepath,juediqiusheng)
elif input_num == 5:
    os_findall_files(fliepath,dota2)

for i in range(10):
    print("转换完成!{}秒后关闭".format(10-i))
    time.sleep(1)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值