python教程

分享三种Python批量图片添加随机水印方法

我的站长站 2023-11-19 人阅读

方法一

提前安装第三方库,安装PIL库(Pillow):在命令行中输入pip install pillow进行安装;
将此py文件放入根目录,另外根目录中有三个文件夹,watermark(水印文件夹)、original(需加水印图片的文件夹)、output(成品文件夹)

from PIL import Image, ImageDraw
import os, random
 
water_path = './watermark'  #  水印文件夹路径
watermark_list = os.listdir(water_path)
 
def do(file_name):
    # 打开原始图片和水印图片
    original_image = Image.open(file_name)
    random_mark = random.choice(watermark_list)  # 选择随机水印图片
    # print(random_mark)
    watermark_image = Image.open(f'{water_path}/{random_mark}')
 
    # 将水印图片缩放到合适的大小
    watermark_width, watermark_height = watermark_image.size
    base_width, base_height = original_image.size
 
    watermark_image = watermark_image.resize((base_width,int(base_width/watermark_width*watermark_height)))
 
    # 创建一个和原始图片相同大小的空白画布
    canvas = Image.new('RGBA', original_image.size)
 
    # 将原始图片粘贴到画布上
    canvas.paste(original_image, (0, 0))
 
    # 将水印图片粘贴到画布上
    canvas.paste(watermark_image, (0, 0))
 
    # 保存带有水印的图片
    name = file_name.split("\\")[-1]
    canvas.save(f'./output/do_{name}')  # 成品保存路径
    print(f">>>>  {name} 添加  {random_mark}  水印  成功。")
 
 
for root, dirs, files in os.walk("./original"):  # 需要加水印的文件夹路径
    for name in files:
        file_name = os.path.join(root, name)
        do(file_name)

方法二

from PIL import Image, ImageDraw, ImageFont
 
def add_watermark(input_image_path, output_image_path, watermark_text):
    # 打开原始图片
    base_image = Image.open(input_image_path).convert("RGBA")
 
    # 创建一个可以在给定图像上绘图的对象
    draw = ImageDraw.Draw(base_image)
 
    # 设置字体和大小
    font = ImageFont.truetype("arial.ttf", 15)  # 水印文字的字体,大小,这是英文字体不支持中文,换成自己的字体即可
 
    # 在图片上添加水印,设置水印位置和颜色等
    draw.text((20,20), watermark_text, fill=color, font=font)
 
    # 保存带有水印的图片
    base_image.save(output_image_path)
 
# 使用示例
add_watermark("../img-test/orig.jpg",  # 需加水印的图片
              "../img-test/orig--out.png",   # 最终的图片
              "Watermark Text")  # 水印文字

方法三

from PIL import Image
 
# 打开背景图片和水印图片
background = Image.open('../img-test/orig.jpg')  # 需加水印的图片
watermark = Image.open('../img-test/mark.png').convert("RGBA")  # 透明背景的水印图片
 
 
# 将水印图片粘贴到背景图片上
background.paste(watermark, (0, 0),mask=watermark)  # 水印位置(0,0)
 
# 保存合并后的图片
background.save('../img-test/orig_mark.png')


相关推荐
  • Python代码
  • 批量加水印
  • iqiyi视频解析Python代码

    最新吾爱大佬分享的一段iqiyi视频解析Python代码,转载分享给大家参考。代码说明m3u8下载部分:pip install m3u8download-hecoter使用需要nodejs项目链接:https://github.com/hecoter/videoParse/tree/main/iqiyipython代码import requestsimport reimpo...

    python教程 138 2年前
  • python开发一个桌面僵尸宠物代码

    python开发一个桌面行走的僵尸宠物代码,可切换僵尸皮肤,效果如下:python代码截图python代码如下# *_* coding : UTF-8 *_*# author : Leemamas# 开发时间 : 2021/5/28 0:48 import sysfrom PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt...

    python教程 232 3年前
  • 获取免费的https代理Python代码

    前言大家用Python爬网页时候,爬快了被封IP,爬慢了,等的着急,这时候就需要https代理来切换IP了。分享一段获取免费的https代理Python代码,可以快速获取网络上免费的https代理。Python代码from multiprocessing.dummy import Lockimport reimport requestsi...

    python教程 101 3年前
  • 在线图片加水印PHP网站源码
    在线图片加水印PHP网站源码

    源码介绍一款超简洁的在线图片加水印源码,PHP开发,无需数据库,无后台。源码只有图片加水印打码功能,UI界面没有写,自己美化下。源码截图...

    php源码 73 2年前
  • 淘宝图片批量处理加水印/压缩/改尺寸工具
    淘宝图片批量处理加水印/压缩/改尺寸工具

    软件说明淘宝图片批量处理工具,主要功能:批量加水印,分为文字水印和图片水印;批量图片质量压缩;批量修改图片尺寸。图片批量处理工具截图...

    开发软件 62 3年前
  • PES Down Tool视频批量加水印编辑工具v1.1
    PES Down Tool视频批量加水印编辑工具v1.1

    软件介绍PES Down Tool视频批量加水印工具v1.1,没啥技术含量就是去执行ffmpeg命令而已,网上这写命令也是公开的,工具比较简单。软件截图软件功能1、视频去头去尾。2、给视频加水印,目前支持一次在不...

    软件分享 67 2年前
最新更新