python图片加水印_怎么在照片上加水印-用Python实现给图片增加水印
背景描述
在写文章的时候,经常需要用到一些图,为了访问被别人盗图,通常的做法是给图片添加水印。
本文分享如何使用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实现给图片增加水印相关推荐
- python 抠图源码_比PS还好用!Python 20行代码批量抠图
你是否曾经想将某张照片中的人物抠出来,然后拼接到其他图片上去,从而可以即使你在天涯海角,我也可以到此一游? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道 ...
- python 进程生命周期_计算客户生命周期价值的python解决方案
python 进程生命周期 By Lisa Cohen, Zhining Deng, Shijing Fang, and Ron Sielinski 由丽莎·科恩,志宁邓,石井方和罗恩Sielinsk ...
- python科目真题_不止金融行业, 全民都在学Python
在大家的印象里,想进入金融行业或者数据岗位,首先需要精通Excel. 然而野村证券副首席数字官马修·汉普森在上周五的伦敦Quant Conference上发表讲话: "现在走进交易大厅,用E ...
- python开发ps插件_你还在用PS?Python 20行代码批量抠图
抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣. Pyth ...
- python代码手机壁纸_大神教你如何用Python爬取手机壁纸,就是这么为所欲为!
随着智能手机的普及,使得人们生活便捷,不知各位小伙伴,给自己的手机设置的壁纸是什么样的呢?我觉得大家应该是去网上下载,或者去应用商店下载吧?这样做需要一个个的去浏览,十分浪费时间.因此我们需要一个便捷 ...
- 如何确定python对应电脑版本_查看Anaconda版本、Anaconda和python版本对应关系和快速下载...
官网 查看Anaconda版本 (C:\ProgramData\Anaconda3) C:\Users\Administrator>conda -V conda 4.3.30 Anaconda和 ...
- 用python画奥迪标志_不知道不 OK!53 个 Python 经典面试题详解
作者 | Chris 翻译 | 苏本如,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 本文列出53个Python面试问题,并且提供了 ...
- python带我起飞_【有书共读】python带我起飞读书笔记05
4.6 tuple(元组)类型 tuple(元组)可以理解为list(列表)的只读版.与list不同的是,元组的元素不能修改. 4.6.1 tuple 与 list 的对比 #空元素 t=() ...
- python hsv inrange 范围_仅20行代码,用python给证件照换底色
1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流.本文只是为了告诉大家:python其实有很多黑科技(牛逼的库),我们既可以用python处理工作中的一些事儿,同时我们也 ...
最新文章
- Java 调用Oracle的存储过程
- 云端计算模型的MATLAB仿真与分析
- Leetcode 92.反转链表
- Ajax.NET 作者发布支持Visual Web Developer 2005的模板安装
- 北邮计算机系统结构课件,TEC-8 运算器组成实验(北邮).ppt
- Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
- 吴恩达深度学习1.2练习_Neural Networks and Deep Learning
- MyCat:取代Cobar数据库中间件
- 浅析那些带着“主角光环“的泰坦尼克号幸存者(下)
- java集合框架的选用 若是数据量很大,0421测试题
- php redis stream,php redis-close() 之后为什么还能使用 $redis-get('key') 获取数据?
- 工具分享:VISIO 2010版windows_64正版软件32位(附下载链接)
- 【Lingo 18.0及其安装教程】
- 【保姆级|建议收藏】阿ken带你学Java入门及进阶(二)——运算符、循环语句,文末有彩蛋鸭✨✨✨
- 项目2抽象基类与派生类
- AI产品经理能力模型的重点素质:人文素养和灵魂境界
- Mac Ports的安装和卸载
- NDK 图像处理遇到的相关问题
- 【三维目标检测】VoxelNet(二):数据处理
- L415 Fat Is Not the Problem—Fat Stigma Is