背景描述

在写文章的时候,经常需要用到一些图,为了访问被别人盗图,通常的做法是给图片添加水印。

本文分享如何使用python批量给图片添加水印。

界面展示

软件的界面如下:

软件的效果如下:

功能介绍

1. 支持单张图片处理

2. 支持文件夹处理

3. 支持的图片格式有PNG、JPEG、JPG

4. 编辑水印内容

5. 图片本地保存

使用说明

1. 单张图片处理

软件的默认模式就是单张图片处理,可以通过菜单->模式->单张图片切换,具体步骤如下:

1. 选择需要添加水印的图片

2. 编辑水印的内容

3. 点击生成水印

4. 保存图片

2. 多张图片处理

通过菜单->模式->多张图片切换,具体步骤如下:

1. 选择图片文件夹

2. 编辑水印的内容

3. 添加水印,同时会保存图片,保存的图片在选择的文件中,以"water_"开头

核心代码

水印的核心代码就是图片处理,需要安装 PIL

sudo pip install pillow

具体的水印处理代码如下:

from PIL import Image, ImageDraw, ImageFont

class Water:

@staticmethod

def add_water(image_path, text):

image = Image.open(image_path)

font = ImageFont.truetype('../font/PingFang.ttc', 36)

mode = "RGBA"

# 创建背景并黏贴图片,居中

background = Image.new(mode, (image.size[0] * 3, image.size[1] * 3), (0, 0, 0, 0))

background.paste(image, image.size)

text_len = len(text)

# 转化模式

rgba_image = background.convert(mode)

# 创建水印层,这个层要大,旋转之后位置变化大

text_overlay = Image.new(mode, rgba_image.size, (255, 255, 255, 0))

# 创建一个会话对象

image_draw = ImageDraw.Draw(text_overlay)

# 绘制水印

for i in range(0, rgba_image.size[0], text_len * 40 + 100):

for j in range(0, rgba_image.size[1], 200):

image_draw.text((i, j), text, font=font, fill=(0, 0, 0, 100))

text_overlay = text_overlay.rotate(45)

# 融合

water_image = Image.alpha_composite(rgba_image, text_overlay)

# 裁剪 因为前面扩大了两倍,这里裁剪一个矩形

water_image = water_image.crop((image.size[0], image.size[1], image.size[0] * 2, image.size[1] * 2))

return water_image

想要获取源码,请关注+转发,然后私信我!

下一篇文章:用Python实现下载抖音分享视频

python图片加水印_怎么在照片上加水印-用Python实现给图片增加水印相关推荐

  1. python 抠图源码_比PS还好用!Python 20行代码批量抠图

    你是否曾经想将某张照片中的人物抠出来,然后拼接到其他图片上去,从而可以即使你在天涯海角,我也可以到此一游? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道 ...

  2. python 进程生命周期_计算客户生命周期价值的python解决方案

    python 进程生命周期 By Lisa Cohen, Zhining Deng, Shijing Fang, and Ron Sielinski 由丽莎·科恩,志宁邓,石井方和罗恩Sielinsk ...

  3. python科目真题_不止金融行业, 全民都在学Python

    在大家的印象里,想进入金融行业或者数据岗位,首先需要精通Excel. 然而野村证券副首席数字官马修·汉普森在上周五的伦敦Quant Conference上发表讲话: "现在走进交易大厅,用E ...

  4. python开发ps插件_你还在用PS?Python 20行代码批量抠图

    抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣. Pyth ...

  5. python代码手机壁纸_大神教你如何用Python爬取手机壁纸,就是这么为所欲为!

    随着智能手机的普及,使得人们生活便捷,不知各位小伙伴,给自己的手机设置的壁纸是什么样的呢?我觉得大家应该是去网上下载,或者去应用商店下载吧?这样做需要一个个的去浏览,十分浪费时间.因此我们需要一个便捷 ...

  6. 如何确定python对应电脑版本_查看Anaconda版本、Anaconda和python版本对应关系和快速下载...

    官网 查看Anaconda版本 (C:\ProgramData\Anaconda3) C:\Users\Administrator>conda -V conda 4.3.30 Anaconda和 ...

  7. 用python画奥迪标志_不知道不 OK!53 个 Python 经典面试题详解

    作者 | Chris 翻译 | 苏本如,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 本文列出53个Python面试问题,并且提供了 ...

  8. python带我起飞_【有书共读】python带我起飞读书笔记05

    4.6 tuple(元组)类型 tuple(元组)可以理解为list(列表)的只读版.与list不同的是,元组的元素不能修改. 4.6.1 tuple 与 list 的对比 #空元素 t=()    ...

  9. python hsv inrange 范围_仅20行代码,用python给证件照换底色

    1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流.本文只是为了告诉大家:python其实有很多黑科技(牛逼的库),我们既可以用python处理工作中的一些事儿,同时我们也 ...

最新文章

  1. Java 调用Oracle的存储过程
  2. 云端计算模型的MATLAB仿真与分析
  3. Leetcode 92.反转链表
  4. Ajax.NET 作者发布支持Visual Web Developer 2005的模板安装
  5. 北邮计算机系统结构课件,TEC-8 运算器组成实验(北邮).ppt
  6. Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
  7. 吴恩达深度学习1.2练习_Neural Networks and Deep Learning
  8. MyCat:取代Cobar数据库中间件
  9. 浅析那些带着“主角光环“的泰坦尼克号幸存者(下)
  10. java集合框架的选用 若是数据量很大,0421测试题
  11. php redis stream,php redis-close() 之后为什么还能使用 $redis-get('key') 获取数据?
  12. 工具分享:VISIO 2010版windows_64正版软件32位(附下载链接)
  13. 【Lingo 18.0及其安装教程】
  14. 【保姆级|建议收藏】阿ken带你学Java入门及进阶(二)——运算符、循环语句,文末有彩蛋鸭✨✨✨
  15. 项目2抽象基类与派生类
  16. AI产品经理能力模型的重点素质:人文素养和灵魂境界
  17. Mac Ports的安装和卸载
  18. NDK 图像处理遇到的相关问题
  19. 【三维目标检测】VoxelNet(二):数据处理
  20. L415 Fat Is Not the Problem—Fat Stigma Is

热门文章

  1. P17-前端基础-CSS伪元素选择器
  2. 如何写好计算机类综述怎么查文献(信息检索与利用基础知识总结一)
  3. FL Studio21水果编曲高级版本音乐编曲工具
  4. linux关闭timewait端口,linux 如何强制关闭 time_wait 连接
  5. Cloneable接口以及深拷贝和浅拷贝
  6. 各有千秋,iFunk 旗下产品特点一览
  7. 单菌二三代数据组装神器-Unicycler
  8. Van der Waerden 定理
  9. 城市管理应急无线通信集群管理方案
  10. 员工考勤打卡时,如何避免非本人代替打卡?