批量加水印防抄袭,Python轻松搞定!

Python Pillow(PIL)详细使用指南 Pillow 库是一个功能强大的图像处理库,可以满足各种图像处理需求。通过上述示例,你可以了解到 Pillow 库的基本操作、滤镜效果和其他高级功能。在实际应用中,可以根据具体需求选择适合的图像处理方法。希望这篇文章能帮助你更好地了解和掌握 Pillow 库的使用。 阅读详情

一、为什么要为图片添加水印

在互联网写文章最头疼的一件事情就是发表的文章容易被抄袭,各种抄袭的手段真的是层出不穷。无奈,只能在不影响阅读体验的情况下不断地提高反抄袭的难度。虽然防不住,但是为文章中的图片添加水印,至少能够保证文章被抄袭之后,读者还能知道文章的来源网站,但是一个一个加水印实在太麻烦,而且假的水印很容易被截掉。

索性,我们就用Python来完成一个图片水印批量添加程序的开发。

二、利用Python为图片添加水印

图片添加图片水印的原理其实很简单,在一个空白的画布上依次将原图像和水印添加添加进去即可。

在Python中,我们可以借助PIL模块轻松地实现图片水印的添加。

下面,我们通过代码来演示一下。

遍历文件夹下所有图片文件

首先我们需要获取一个目录下的所有文件,提取出其中的图像文件,这一步通过内置的os模块即可实现,代码如下所示:

import os
img_suffix_list = ['png', 'jpg', 'bmp']
for i in os.listdir(r"C:\Users\yang9\Desktop"):
    if i.split('.')[-1] in img_suffix_list:
        print(i)

运行上述代码,我们将获取选定目录下后缀名为png、jpg、bmp的图形文件,其效果如下图所示:

为图片添加图片水印

下面这一步,我们为图片添加图片水印。这一步需要借助的PIL的Image类来实现。

首先,读取原始图片和水印图片,并获取原始图片的大小,

然后我们新建一个图层,其大小为原始图片的大小,并将水印图片添加到图层上:

wm_position = (img_size[0]-wm_size[0],img_size[1]-wm_size[1]) # 默认设定水印位置为右下角
layer = Image.new('RGBA', img.size)  # 新建一个图层
layer.paste(watermark, wm_position)  # 将水印图片添加到图层上

接着,我们对图层和原始图片进行合成:

mark_img = Image.composite(layer, img, layer)

最后,调用save方法,将新图片保存到本地:

mark_img.save(save_path + new_file_name)

这样,一个添加了水印的图片就生成了。

我们将其整合为两个函数,方便调用,代码如下所示:

# coding:utf-8
import os,traceback
from PIL import Image

# 获取文件夹图片
def get_folder(fpath,wm_file,save_path):
    try:
        img_suffix_list = ['png', 'jpg', 'bmp']
        for i in os.listdir(fpath):
            if i.split('.')[-1] in img_suffix_list:
                img_path = fpath + '/' + i
                img_water_mark(img_file=img_path,wm_file=wm_file,save_path=save_path)
    except Exception as e:
        print(traceback.print_exc())

# 图片添加水印
def img_water_mark(img_file, wm_file,save_path):
    try:
        img = Image.open(img_file)  # 打开图片
        watermark = Image.open(wm_file)  # 打开水印
        img_size = img.size
        wm_size = watermark.size
        # 如果图片大小小于水印大小
        if img_size[0] < wm_size[0]:
            watermark.resize(tuple(map(lambda x: int(x * 0.5), watermark.size)))
        print('图片大小:', img_size)
        wm_position = (img_size[0]-wm_size[0],img_size[1]-wm_size[1]) # 默认设定水印位置为右下角
        layer = Image.new('RGBA', img.size)  # 新建一个图层
        layer.paste(watermark, wm_position)  # 将水印图片添加到图层上
        mark_img = Image.composite(layer, img, layer)
        new_file_name = '/new_'+img_file.split('/')[-1]
        mark_img.save(save_path + new_file_name)
    except Exception as e:
        print(traceback.print_exc())

这样,我们通过一个函数get_folder(),指定图片的目录,水印图片的位置以及新图片保存的位置就可以了。运行代码,其效果如下动图所示:

 

三、利用QT for Python制作图片水印添加程序

代码写好了之后,我们就可以很方便地借助其进行批量添加图片水印的操作了。虽然很方便,但是如果能够有一个图形用户界面的客户端程序供我们使用,那就更加好了。

在这里还是要推荐下我自己建的Python学习群:609616831,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

 

Python实现图片的大小调整与保存 上述代码中,我们首先使用Image.open()函数打开一张名为’test.jpg’的图片。接着,使用resize()函数将图片的大小调整为100*100,将调整后得到的图片保存在resize_img变量中。接着,使用resize()函数将图片的大小调整为100*100,将调整后得到的图片保存在resize_img变量中。首先,我们需要安装并导入Python的图像处理库Pillow,该库是Python中最常用的图像处理库之一。当然,在实际应用过程中,还需要根据自己的需求和情况进行相应的调整和优化。 阅读详情

相关推荐

【Dify】气象数据自动化可视化应用

本文介绍了自动化气象数据可视化的工作流程,通过Dify平台实现从数据获取到图表渲染的全自动化处理。工作流包含三个核心节点:自动获取气象数据、Python处理生成Echarts配置、结构化输出结果。该方案显著降低了操作门槛,适用于教学、农业、城市规划等场景,无需编程基础即可快速生成专业气象图表。系统通过标准化流程自动完成数据采集、格式转换和可视化配置,为决策分析提供直观的数据支持。

Mr数据杨 1万+

每日10行代码39:opencv的初步使用

今天回老家了,家里没电脑,只能手写代码了,没想到传个照片搞半天,手机自带的照相机照的图片传上来方向不对,在手机里改了方向也不行,最后换了个照相软件才拍照成功。

天天卡丁的博客 203

【信息科学与工程学】【数据科学】数据科学领域-第十一篇 数据集成算法01

​​降低维护成本​​:通过抽象通用流程(如),当需要修改故障注入逻辑(如更换混沌工具)时,只需修改一处代码,无需修改所有测试用例;​​提升扩展性​​:通过参数化故障场景(如),可快速生成新的故障用例(如针对新服务的延迟故障),适应系统迭代需求;​​增强场景真实性​​:通过组合混沌操作(如),模拟真实生产环境中的复杂故障链(如“网络延迟+服务宕机”),更准确地验证系统韧性;​​提高分析效率​​:通过自动化结果分析(如),快速获取MTTR、错误率等关键指标,减少人工分析时间。

weixin_49199313的博客 957

Pillow库常用函数系列-图像保存

【代码】Pillow库常用函数系列-图像保存。

weixin_44818765的博客 449

Ubuntu新手必看:3种方法快速查看和编辑JSON文件(附jq安装指南)

本文为Ubuntu新手详细介绍了三种查看和编辑JSON文件的核心方法:命令行利器jq、灵活脚本Python以及直观的图形化编辑器(如VS Code)。文章重点解析了jq的安装与核心用法,并对比了各方案的优缺点,帮助用户根据快速查询、复杂处理或直观编辑等不同场景,选择最合适的工具,从而高效处理JSON数据。

weixin_29229989的博客 418

绕过Google Play:获取Expo Go安卓APK的实用指南

本文为国内安卓开发者提供了绕过Google Play商店获取Expo Go APK的实用指南。针对无法访问Google Play的痛点,详细介绍了通过官方GitHub Releases、可信第三方网站(如APKMirror)及APK下载器等多种安全获取途径,并重点讲解了APK安装、安全验证(核对签名)及常见连接问题的排查方法,帮助开发者顺利开启React Native开发之旅。

weixin_29006701的博客 581

Python学习笔记——pillow库修改图片rgb颜色

1.思路: 打开图片,处理图片,保存图片 每个图片都是由多个像素块组成,每个像素块颜色是rgb形式,所以可以通过修改像素块颜色来修改图片颜色。 可以使用取色软件,取图片上的颜色,找出需要替换颜色的规律。 链接:https://pan.baidu.com/s/1cMKPeSXhVlA_PAKgsGL9Gw 提取码:latj 2.代码(修改证件照背景色) import PIL.Image as Image #============1.打开图片============ img = Image..

小橙子的博客 7708

手把手教你学Simulink--双足机器人分数阶PID控制仿真

分数阶PID(Fractional-order PID, FOPID)控制是一种先进的控制策略,它扩展了传统的整数阶PID控制器的概念。FOPID控制器允许积分和微分项的阶次不是严格的整数,而是可以是任意实数,这为系统提供了更多的设计自由度,并可能带来更好的性能。在双足机器人控制中,分数阶PID控制可以用于改善机器人的平衡控制、轨迹跟踪等任务的性能。下面我们将详细介绍如何使用Simulink进行基于分数阶PID控制方法的双足机器人仿真研究。

MHD0815的博客 885

python设置图片透明度_Python 批量加水印!轻松搞定!

↑关注+星标,听说他有点东西全文共2003字,阅读全文需5分钟大家好,我是小一想必有读者会遇到这种情况:自己辛辛苦苦写的文章被盗,而且对方在文章中既不显示原文链接,也不做任务说明,堂而皇之的自己标记“原创”。碰见这种事情,搁谁都会拍案而起。如果对方有良知的话你私信过去他可能会修改或者删文,可是要是对方不讲武德,那可真的太TM烦人了。小一刚开始写文章的时候也有遇到过被抄袭,但是对方经不过我...

weixin_31968831的博客 1216

petalinux i2c的配置

1.硬件平台配置 1.内核配置 cd petalinux-config -c kernel -> Device Drivers -> I2C support -> i2C Hardware Bus support -> Xilinx I2C Controller Pressing 启用CONFIG_I2C_XILINX=y 2.修改用户设备树 cd cd project-spec/meta-user/recipes-bsp/device-tree/files/ i2c2:

u013403954的博客 4315

巨量千川M-API实战:异步报表与批量操作自动化指南

API(应用程序编程接口)是现代软件系统间通信和数据交换的核心技术,它定义了服务间交互的协议和规范。在数字营销领域,营销API(Marketing API)通过程序化接口实现了广告账户管理、数据获取和操作自动化的能力,其技术价值在于将重复性人工操作转化为高效、准确的自动化流程,显著提升运营效率并降低人为错误。在广告投放精细化运营场景中,面对海量数据报表的获取与批量广告状态管理的需求,异步任务处理和批量操作接口成为关键技术解决方案。本文聚焦巨量千川M-API,深入解析其异步报表获取机制与批量操作实现,涵盖从任

weixin_32932149的博客 430

Python 批量加水印!轻松搞定!

↑关注+星标,听说他有点东西全文共2003字,阅读全文需5分钟大家好,我是小一想必有读者会遇到这种情况:自己辛辛苦苦写的文章被盗,而且对方在文章中既不显示原文链接,也不做任务说明,堂而皇之...

小一的博客 290

【推荐系统】推荐算法:冷启动-召回-粗排-精排-重排 解读

【推荐系统】推荐算法:冷启动-召回-粗排-精排-重排 解读

Danger的博客 3761

牛逼,我用Python做了一个word、PPT水印添加器!还带加密功能!

点上方“菜鸟学Python”,选择“星标” 第474篇原创干货,第一时间送达 大家在日常的工作学习中,会遇到将word或者是PPT转换成PDF文档,并分享pdf文档,但是大家在分享文档的同...

cainiao_python的博客 1631

piamon实战-- 如何使用 Paimon 的 Java API 实现数据的点查

点查(Point Lookup)是指通过 ​​唯一键(Primary Key)​​ 快速定位并返回单条或少量数据的查询模式。例如:根据用户 ID 查询用户信息、根据订单号查询订单详情等。点查的核心诉求是 ​​低延迟​​ 和 ​​高吞吐​​,适用于实时风控、在线分析等场景。​​定义主键表结构​​,优化数据分布。​​构建过滤条件​​,使用指定查询键。​​执行查询并处理结果​​,结合流式更新实现实时查询。

阿华田的博客 535

Python李峋同款跳动的爱心(完整代码)

Python语言实现李峋同款可写字版跳动的爱心的完整代码。

AIGC 4万+

AI算法工程师转型讲师:实战经验到知识产品的变现路径

在人工智能领域,算法工程师的核心价值在于将复杂模型与工程实践落地。其技术能力不仅体现在模型调优和性能提升上,更在于能否将高深原理转化为可理解、可应用的知识。这种“技术翻译”能力,正是连接前沿研究与产业应用的关键桥梁,也是构建个人技术影响力的基础。从工程实现转向知识传授,本质上是将经过工业界验证的实战能力进行产品化封装,通过系统化的课程设计与教学呈现,解决市场上广泛存在的技能提升与求职痛点,例如“AI算法工程师面试”中的项目经验与解题思路缺失问题。这一过程不仅创造了经济价值,更形成了以“深度学习”、“模型部署

chuoshao2508的博客 396

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用pillow和for批量处理保存图片,把同一张图片存储为多个文件名。

此项目比较简单,把同一张图片存储为多个文件名,然后批量进行上传即可。 首先是安装pillow,社区在PIL的基础上创建了兼容的版本pillow。 运行CMD,然后输入 pip install pillow 或者我是用pycharm安装的,设置-项目-右边有个+号。点击+号然后输入pillow,点击安装就成功了。 我先将图片放入路径中,名字为11.jpg from PIL import Image #这里是导入PIL这个库 im = Image.open("11.jp

weixin_55008315的博客 641

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Pillow库 三分钟带你了解最基础的使用

Pillow库 三分钟带你了解最基础的使用

醉蕤的博客 3910

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

pillow 保存图像路径_Python教程:使用 Pillow 处理图片

点击上方关注订阅黑码教主获取更多精彩内容安装Pillow# v2版本 - 已弃pip install PIL# v3版本pip install Pillow图形缩放操作from PIL import Image# 打开一个jpg图像文件,注意是当前路径:im = Image.open('/Users/jomax/Desktop/test.jpg')# 获得图像尺寸:w, h = im.sizepr...

weixin_28862113的博客 1395

Pillow教程01:初识Pillow模块(创建Image对象+查看属性+图片的保存与缩放)

dither:抖动方法,当从 ‘RGB’ 转换为 ‘P’ 模式或从 ‘RGB’ 或 ‘L’ 转换为 ‘1’ 模式时使用。常见的模式包括 ‘L’(灰度模式,每个像素为8位)、‘RGB’(红绿蓝模式,每个像素为24位)、‘RGBA’(红绿蓝加透明度模式,每个像素为32位)等。4.图像缩放,可以通过resize()方法来实现,resize() 方法使用默认的插值方法(通常是 Image.BICUBIC),但你也可以通过传递一个额外的参数来指定不同的插值方法。不是所有的模式转换都是可逆的。color:图像的颜色。

2401_84010165的博客 1178

conda命令:管理包、管理环境

reference:优达课程——机器学习进阶-anaconda配置 conda list :查看安装哪些包 conda upgrade --all:更新所有包 1. 管理包 安装包 安装了 Anaconda 之后,管理包是相当简单的。要安装包,请在终端中键入conda install package_name。例如,要安装 numpy,请键入cond...

z583636762的博客 8万+

pillow常用知识

导入 Pillow 中的。

2303_77275067的博客 647

pillow 保存图像路径_Python使用 Pillow 处理图片

Pillow提供了广泛的文件格式支持、高效的内部表示和相当强大的图像处理功能。核心图像库设计用于快速访问以几个基本像素格式存储的数据。它为一般的图像处理工具提供了坚实的基础。安装Pillowpip install Pillow图形操作准备一张图片:缩放操作from PIL import Image, ImageDraw, ImageFont, ImageFilter# 打开一个jpg图像文件,注意...

weixin_31574149的博客 576

Python实战(06):Pillow处理图片功能一览

Pillow处理图片功能一览一、前言二、安装pillow三、pillow操作图片2.1 打开图片、保存图片2.2 图片放缩2.3 图片过滤2.4 图片裁剪2.5 图片旋转2.6 镜像转换2.7 图片模式调整四、实战 一、前言 最近在写博文的内容中经常要使用到python处理图片,感觉对图片的了解不是很清楚。所以翻阅和学习网上的资料和内容,通过实战操作来,写了这篇关于pillow处理图片的博文,对我...

jie_ming514的博客 2805

【Python】保存不同尺寸(等比缩放)图像的脚本

由于项目的需求,需要制作不同尺寸图像的脚本,为方便其他同事使用,所以我制作了一个ini文件,方便修改配置参数,如果方便使用,也可以按照个人喜好打包为exe。 一、脚本使用方法: (1)复制下面resize.py代码,安装好代码中所需要的第三方库; (2)在resize.py目录下新建一个记事本,将config.ini中的内容复制进去,并将记事本扩展名修改为.ini; (3)运行resize.py; (4)运行成功后,目录下会出现Image文件夹(用来保存等比缩放后的图像),image.log文件(脚本的运

测试开发自动化 1118
上一篇: Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?
下一篇: 更快、更强的Python实现:Pyston v2.0发布
python阿喵
博客等级 码龄6年 169粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值