【Python 实战】---- 批量对图片添加不同水印

2023-10-27

1. 需求

  1. 多水印,多图片
  2. 对图片和水印进行一一对应的批量添加

2. 效果对比【加水印前和加水印后】

在这里插入图片描述

3. 开发思路

  1. 由于水印是多个,同时图片也是多个,所以考虑使用excel对他们进行配置,好一一对应;
  2. 字体的获取,不同文字的字体不同;
  3. 水印显示的位置计算;
  4. 最后将excel中对应的水印添加到对应的位置,保存图片!

4. 开发环境

python 3.7

from PIL import Image, ImageDraw, ImageFont
import openpyxl
import os
import time
from datetime import date

5. EXCEL 配置图片和水印在这里插入图片描述

6. 配置字体和图标

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python 实战】---- 批量对图片添加不同水印 的相关文章

随机推荐

  • AndroidStudio中Module创建及项目变Module导入其它项目步骤

    AndroidStudio中Module创建及项目变Module导入其它项目步骤记录 1 创建module 2 添加依赖 3 将已有项目变为module导入到其他项目中 将已有项目更改 将旧项目作为module导入 4 遇到的一些问题 总结
  • Ceres Solver安装及bug解决

    Ceres Solver安装与入门使用 安装教程 http www ceres solver org installation html 点击下载最新的稳定版 解压 编译 测试 安装 1 Linux系统下安装步骤 安装依赖 CMake su
  • 拯救pandas计划(19)——使用自定义方法计算两列的相似度

    拯救pandas计划 19 使用自定义方法计算两列的相似度 最近发现周围的很多小伙伴们都不太乐意使用pandas 转而投向其他的数据操作库 身为一个数据工作者 基本上是张口pandas 闭口pandas了 故而写下此系列以让更多的小伙伴们爱
  • GLES3.0中文API-glBeginQuery

    名称 glBeginQuery 划定查询对象的边界 C规格 void glBeginQuery GLenum target GLuint id void glEndQuery GLenum target 参数 glBeginQuery ta
  • react中“create-react-app”不是内部或者外部命令也不是可运行程序的解决办法

    换个命令创建项目 npm init react app my app 可创建 npm run start 启动
  • antd-design/pro-table组件说明(官方readme)

    ant design pro table Antd官网没找到Pro Table的相关说明文档 下面是从依赖包里捞出来的readme Demo codesandbox API pro table 在 antd 的 table 上进行了一层封装
  • 洛谷 贪心 部分背包 线段覆盖 排队接水 python

    P2240 深基12 例1 部分背包问题 数据结构选择 python没有结构体 选用二维数组 物品价值 重量 存储单个物品方便排序 根据贪心策略 首先计算性价比 然后按性价比由大到小排序 只要没有达到背包承载的重量 就装入 python n
  • 第八章 综合案例——构建DVD租赁商店数据仓库①

    8 3 2 加载日期数据至日期维度表 1 打开Kettle工具 创建转换 使用Kettle工具 创建一个转换load dim date 并添加生成记录控件 增加序列控件 JavaScript代码控件 表输出控件以及Hop跳连接线 2 配置
  • 用作者提供的net1->net2生成MTCNN的训练样本(positive,negative,part,landmark)

    本代码基于作者提供的python版本代码修改 参考 https github com DuinoDu mtcnn blob master demo py 作者提供 https github com dlunion mtcnn blob ma
  • C++中pair使用详细说明

    一 pair 的介绍 pair 是一个很实用的 小玩意 当想要将两个元素绑在一起作为一个合成元素 又不想要因此定义结构体时 使用 pair 可以很方便地作为一个代替品 也就是说 pair 实际上可以看作一个内部有两个元素的结构体 且这两个元
  • Python轻量级Web框架Flask(3)——Flask路由参数/Flask请求与响应/重定项/异常处理

    1 Flask路由参数和methods参数 路由其实就是一个路径 就是 a route template test 中的 template test 每一个路由对应的是唯一的一个功能 如果要实现很多个功能 就需要很多个路由 methods参
  • #992: invalid macro definition: USE_STDPERIPH_DRIVER.STM32F10X_MD问题解决方法

    现像 在进行STM32进行建立工程过程中 进行编译后出现如下报错 no source Error command line 992 invalid macro definition USE STDPERIPH DRIVER STM32F10
  • 我的NVIDA开发者之旅-在GPU上运行Pytorch代码

    我的NVIDIA开发者之旅 征文活动进行中 目录 介绍 查看GPU信息 Pytorch指定显卡 Demo 参考 介绍 Pytorch与CUDA的安装可以参照我之前写的深度学习环境搭建 Windows10安装cuDNN Pytorch能够使用
  • Linux网络基础5(链路层---以太网)

    链路层 负责相邻设备之间的数据传输 以太网协议 ethernet 协议格式 48位源端 对端mac地址 识别指定相邻设备 mac地址 uint8 t mac 6 网卡的物理硬件地址 在出厂时设定 16位数据类型 用于数据分用时上层解析协议的
  • Kettle 将文本文件转为excel输出

    关注微信公共号 小程在线 关注CSDN博客 程志伟的博客 一 将文本文件转为excel输出 1 选择打开 新建转换 2 点击文本文件输入 3 点击浏览 找到我们需要的文本文件 4 选择好之后点击增加 5 显示文件的具体路径 6 点击 显示文
  • html中img标签特性及块元特性

    img特性 1 img不会独占一行 一行可以放多个 2 img是行内元素 但具有行内块属性 可以自由设置宽高 这种内容可替换的元素 虽然属于 inline 但又能设置height width等值 块元素特性 1 每一个块级元素都是独占一行
  • ajax可以做哪些事,Ajax

    1 ajax 是什么 有什么作用 ajax主要是实现页面和web服务器之间数据的异步传输 不采用ajax的页面 当用户在页面发起请求时 就要进行整个页面的刷新 刷新快慢取决于服务器的处理快慢 在这个过程中用户必须得等待 不能进行其他操作 采
  • Typora 远程代码执行漏洞(CVE-2023-2317)

    1 漏洞介绍 Typora是一款编辑器 Typora 1 6 7之前版本存在安全漏洞 该漏洞源于通过在标签中加载 typora app typemark updater update html 可以在Typora主窗口中加载JavaScri
  • Nginx:配置worker进程的所属用户

    Nginx的配置文件 etc nginx nginx conf中定义了启动worker时的所属用户 全局块 user www data worker进程的所属用户 nginx默认设置为www data 但如果该用户配置的不正确 可能造成业务
  • 【Python 实战】---- 批量对图片添加不同水印

    1 需求 多水印 多图片 对图片和水印进行一一对应的批量添加 2 效果对比 加水印前和加水印后 3 开发思路 由于水印是多个 同时图片也是多个 所以考虑使用excel对他们进行配置 好一一对应 字体的获取 不同文字的字体不同 水印显示的位置