Bootstrap

图像批量添加数字水印

图像批量添加数字水印

首先准备图像文件,然后把该文件中的图像内容作为数字水印批量添加到 某个文件夹中所有图像文件中,要求水印在目标图像文件中的位置随机选择为左上角、右下角或图像中间,并且水印图像的背景在目标图像中设置为透明。
1.首先下载要添加的水印图像,放入指定路径。
2其次下载添加水印的图像,放入指定路径。
3.然后下载好对应的python库。
4.最后运行下面的代码。
最终形成的图片会放入某个路径,应提前定义好。
下载PIL库,在命令行输入 pip install pillow

from PIL import Image
import random
import os
"""
def addwm(imagepath,k):
    path1="D:/image/watermark/1.png"
    path2="D:/image/img/"+imagepath
    path3="D:/image/finish/"
    wm=Image.open(path1).convert("RGBA")
    img=Image.open(path2).convert("RGBA")
    newwm=wm.resize((300,300))
    newimg=img.resize((450,500))
    width1,height1=newwm.size
    width2,height2=newimg.size
    position=[(0,0),(width2//2-width1//2,height2//2-height1//2),(width2-width1,height2-height1)]
    tuce=Image.new("RGBA",(width2,height2),(0,0,0,0))
    tuce.paste(newwm,random.choice(position))
    out=Image.composite(tuce,newimg,tuce)
    out.save(path3+str(k+1)+".png")
def start():
    path="D:/image/img/"
    images=os.listdir(path)
    withs=[".jpg",".png",".bmp"]
    for i in range(len(images)):
        hname=os.path.splitext(images[i])[1]
        if hname in withs:
            addwm(images[i],i)
            print("图片"+images[i]+"添加水印成功")

if __name__=="__main__":
    start()
"""
def addwm(imagepath,k):
    path1="D:/image/watermark/3.jpg"
    path2="D:/image/img/"
;