图像批量添加数字水印
图像批量添加数字水印
首先准备图像文件,然后把该文件中的图像内容作为数字水印批量添加到 某个文件夹中所有图像文件中,要求水印在目标图像文件中的位置随机选择为左上角、右下角或图像中间,并且水印图像的背景在目标图像中设置为透明。
1.首先下载要添加的水印图像,放入指定路径。
2其次下载添加水印的图像,放入指定路径。
3.然后下载好对应的python库。
4.最后运行下面的代码。
最终形成的图片会放入某个路径,应提前定义好。
下载PIL库,在命令行输入 pip install pillow
from PIL import Image
import random
import os
"""
def addwm(imagepath,k):path1="D:/image/watermark/1.png"path2="D:/image/img/"+imagepathpath3="D:/image/finish/"wm=Image.open(path1).convert("RGBA")img=Image.open(path2).convert("RGBA")newwm=wm.resize((300,300))newimg=img.resize((450,500))width1,height1=newwm.sizewidth2,height2=newimg.sizeposition=[(0,0),(width2//2-width1//2,height2//2-height1//2),(width2-width1,height2-height1)]tuce=Image.new("RGBA",(width2,height2),(0,0,0,0))tuce.paste(newwm,random.choice(position))out=Image.composite(tuce,newimg,tuce)out.save(path3+str(k+1)+".png")
def start():path="D:/image/img/"images=os.listdir(path)withs=[".jpg",".png",".bmp"]for i in range(len(images)):hname=os.path.splitext(images[i])[1]if hname in withs:addwm(images[i],i)print("图片"+images[i]+"添加水印成功")if __name__=="__main__":start()
"""
def addwm(imagepath,k):path1="D:/image/watermark/3.jpg"path2="D:/image/img/"+imagepathpath3="D:/image/finish/"wm=Image.open(path1).convert("RGBA")img=Image.open(path2).convert("RGBA")newwm=wm.resize((300,300))newimg=img.resize((450,500))width1,height1=newwm.sizewidth2,height2=newimg.sizefor i in range(width1):for j in range(height1):rgba=newwm.getpixel((i,j))newrgba=rgba[:-1]+(100,)newwm.putpixel((i,j),newrgba)position=[(0,0),(width2//2-width1//2,height2//2-height1//2),(width2-width1,height2-height1)]tuce=Image.new("RGBA",(width2,height2),(0,0,0,0))tuce.paste(newwm,random.choice(position))out=Image.composite(tuce,newimg,tuce)out.save(path3+str(k+1)+".png")
def start():path="D:/image/img/"images=os.listdir(path)withs=[".jpg",".png",".bmp"]for i in range(len(images)):hname=os.path.splitext(images[i])[1]if hname in withs:addwm(images[i],i)print("图片"+images[i]+"添加水印成功")if __name__=="__main__":start()
图像批量添加数字水印相关推荐
- 【python与数据分析】实验八——图像批量添加数字水印及实现模拟转盘抽奖游戏
一.实验目的 1.理解空域添加数字水印的原理: 2.熟悉安装扩展库pillow; 3.熟悉扩展库pillow操作图像方法; 4.熟悉运用字典结构. 5.初用numpy实现模拟转盘抽奖游戏 二.实验内容 ...
- Python实现批量图片添加数字水印
之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水印 ...
- python批量添加水印_Python实现批量图片添加数字水印
之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水印 ...
- python数字水印_Python实现批量图片添加数字水印
之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考:Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水 ...
- opencv论坛_Opencv批量添加logo的解决方案
知乎的水印是如何批量添加的?您想拥有这个本领吗? 我在opencv论坛发现了这个趣图添加logo的方法,也许您正需要这个代码,那我就诚心分享下吧. 如何删除结果图像中mainlogo.png周围的黑色 ...
- 使用Photoshop给Premiere批量添加对白字幕听语音 |浏览:25974|更新:2013-12-23 23:18|标签:photoshop premiere 使用Photoshop给Pre
使用Photoshop给Premiere批量添加对白字幕 听语音 | 浏览:25974 | 更新:2013-12-23 23:18 | 标签:photoshop premiere 1 2 3 4 5 ...
- python 批量增加文件前缀_linux中批量添加文件前缀的操作方法
linux中批量添加文件前缀的操作方法 需要在文件夹内所有txt文件的文件名前面添加"gt_"; 就是由原来的文件"xxx.txt"变成"gt_xxx ...
- 【OpenCV 例程 300篇】219. 添加数字水印(盲水印)
OpenCV 例程200篇 总目录 [youcans 的 OpenCV 例程 300篇]219. 添加数字水印(盲水印) 8.2 添加数字盲水印 数字水印,是指将特征信息嵌入音频.图像或是视频等数字信 ...
- 如何给图片批量添加专属水印
现在越来越多的人喜欢在社交平台分享自己的照片,为了防止我们所发的照片被他人盗用,我们可以给照片添加上专属的水印.那么问题又来了,如果需要给大量图片添加统一的专属水印,也就是批量添加,否则一张一张图片添 ...
最新文章
- 刷新视频超分新记录28.41dB!一种全局视频超分方案OVSR
- 4G EPS 的架构模型
- 版本控制集中式与分布式的区别
- 主体ubuntu16.04,宿体virtualbox下的windows7的共享文件夹设置
- 不要笑!写 | 还是 || ,还真是一个问题
- 必读的10篇关于GAN的论文
- 服务器磁盘操作系统双机软件集成,实战:ROSE HA双机热备系统安装指南
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
- 16. OD-破解序列号验证机算法
- CLR via C# 内存管理读书记
- 13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣
- Google AI “作恶”,4000 员工抗议,十余人失望辞职!
- Screen Space Fluid Rendering for Games(nv gdc2010)
- 2012安装oracle11g教程,Windows Server 2012 安装oracle11g(图文教程)
- Windows 80端口被System进程占用的解决
- 360云盘账号停止服务器,360云盘服务器终止为什么
- Visual Leak Detector使用方法
- linux下配置dnx地址,Linux上编译DNX失败
- The package javax.swing is not accessible(java GUI 编程时引用swing包和awt包时会报错怎么办)
- List的toArray()方法和toArray(T[] a)方法
热门文章
- html js满屏飘雪特效,JS实现炫酷雪花飘落效果
- c 语言 函数 公开课教案6,小班语言公开课教案范文(精选6篇)
- julia调用slurm进行多节点运行
- gitLab ssh密匙配置
- 沉降变形观测方案(转载)
- 废品回收小程序开发的功能
- springmvc的PathVariableMethodArgumentResolver解析_晏无心_新浪博客
- nginx开启gzip
- 儿童写作业的台灯怎么选择?2023给孩子买台灯最新推荐一下
- linux图形界面总结---X、Xorg、WM、QT、GTK、KDE、GNOME的区别与联系