Python实现批量图片添加数字水印
之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考Python实现图像空域随机水印加入与提取。本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水印位置在左上角、中间、右下角这三个位置中随机选择。
from random import randint
from os import listdir
from PIL import Image
#打开并读取其中的水印像素,也就是不是白色背景的像素
#读到内存中,放到字典中以供快速访问
im = Image.open('watermark.bmp')
width, height = im.size
pixels = dict()
for w in range(width):
for h in range(height):
c = im.getpixel((w,h))[:3]
if c!=(255, 255, 255):
pixels[(w, h)] = c
def addWaterMark(srcDir):
#获取当前所有BMP图像文件列表
picFiles = [fn for fn in listdir(srcDir) if fn.endswith(('.bmp', '.jpg', '.png'))]
#遍历所有文件,为每个图像添加水印
for fn in picFiles:
im1 = Image.open(fn)
w, h = im1.size
#如果图片尺寸小于水印图片,不加水印
if w<width or h<height:
continue
#在原始图像左上角、中间或右下角添加数字水印
#具体位置根据position进行随机选择
p = {0:(0,0), 1:((w-width)//2, (h-height)//2), 2:(w-width, h-height)}
position = randint(0,2)
top, left = p.get(position, (0,0))
#修改像素值,添加水印
for p, c in pixels.items():
im1.putpixel((p[0]+top, p[1]+left), c)
#保存加入水印之后的新图像文件
im1.save(fn[:-4] + '_new' + fn[-4:])
#为当前文件夹中的图像文件添加水印
addWaterMark('.')
其中一张效果图:
Python实现批量图片添加数字水印相关推荐
- python批量添加水印_Python实现批量图片添加数字水印
之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水印 ...
- python数字水印_Python实现批量图片添加数字水印
之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考:Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水 ...
- python给批量图片添加文字 脚本,Python实现图片添加文字
在工作中有时候会给图上添加文字,常用的是PS工具,不过我想通过代码的方式来给图片添加文字. 需要使用的Python的图像库:PIL.更加详细的知识点如下: Imaga模块:用来创建,打开,保存图片文件 ...
- python实现批量图片/文件重命名
python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...
- 一、python+PIL给图片添加文字水印
python+PIL给图片添加文字水印 最近需要给同一张图片添加不同的水印保存,在网上搜了很多,也不是很有效,在这儿记录一下我运行正确无误的代码,方便自己以后查看: #读取文件每一行,写到图片中间位置 ...
- Python脚本—批量图片格式转换
使用Python的os.sys.PIL库完成批量图片格式转换 import os import sys from PIL import Imageinput_folder = r'D:\Toolkit ...
- python实现给图片添加高斯噪声
import cv2 import numpy as npdef add_gaussian_noise(image_in, noise_sigma):"""给图片添加高斯 ...
- yolov3 python接口_darknetyolov3调用Python接口来检测和保存批处理图像,DarknetYoloV3,python,进行,批量,图片,并...
将主函数替换即可. # 将检测结果绘制到照片上并且保存 if __name__ == "__main__": #os.environ["CUDA_VISIBLE_DEVI ...
- python下载批量图片
本次研究的是用python批量下载豆瓣里面某位女明星的照片到本地,按照分页来处理,下载路径也是分页来保存. #code:--utf8-- #author:bingw #create_time:2022 ...
最新文章
- Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集......
- 解决 nfs挂载错误wrong fs type, bad option, bad superblock
- 以计算机网络为中介的人际传播,以计算机为中介的人际传播理论范式
- 数字图像恢复matlab结论,matlab模糊图像恢复数字图像处理
- Ubuntu安装python3虚拟环境
- 强悍的 Ubuntu —— 粘贴板
- Datatable 去除重复行
- EXCEL滚动表格时保持第一行标题不动
- Adblock PLus 插件chrome用
- keil中断函数的写法_中断函数写法的比较
- 树莓派做百度云盘离线下载器BaiduPCS-Go web,树莓派与windows互传文件
- 按键精灵使用百度文字识别(百度ocr)教程
- c# 计算圆锥的体积_急求用c#计算圆柱体和圆锥体的体积的代码,下面是要求:...
- 思考与总结:我对管理岗位的思考
- 传奇服务器如何修改装备,架设传奇私服时怎样修改装备图标
- 第九章(8)多元函数的极值及求法
- 设置软件的默认打开方式
- 什么是SEO?搜索引擎优化是什么意思?
- nodejs request库拉取jsp接口 gb2312、GBK中文乱码解决方法
- android 设置头像以及裁剪功能
热门文章
- css ltimg gt只适应,css3动画,CSS3实战小技巧--使用CSS变量实现波浪动画
- 计算机安装应用程序卸的步骤,电脑软件怎么卸载,干货在这里,如何卸载电脑上安装的软件...
- mysql 超时_为MySQL设置查询超时
- 修改kafka java环境_单节点Kafka、Zookeeper安装、启用过程(Windows OS环境)
- linux boost 1.53编译,boost-1.53源码编译
- spring mvc和rest风格小例子
- Controller接口控制器详解(1)
- android源码出现的@字符代表什么意思
- java json html模板,基于jQuery的AJAX和JSON实现纯html数据模板(转载)
- linux基础练习,Linux基础指令练习