之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考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实现批量图片添加数字水印相关推荐

  1. python批量添加水印_Python实现批量图片添加数字水印

    之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水印 ...

  2. python数字水印_Python实现批量图片添加数字水印

    之前写过一个类似的代码,是把水印信息打散以后随机添加到原图中,并提供了水印信息的提取功能,请参考:Python实现图像空域随机水印加入与提取.本文代码功能:为指定文件夹中的所有图像文件批量添加水印,水 ...

  3. python给批量图片添加文字 脚本,Python实现图片添加文字

    在工作中有时候会给图上添加文字,常用的是PS工具,不过我想通过代码的方式来给图片添加文字. 需要使用的Python的图像库:PIL.更加详细的知识点如下: Imaga模块:用来创建,打开,保存图片文件 ...

  4. python实现批量图片/文件重命名

    python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...

  5. 一、python+PIL给图片添加文字水印

    python+PIL给图片添加文字水印 最近需要给同一张图片添加不同的水印保存,在网上搜了很多,也不是很有效,在这儿记录一下我运行正确无误的代码,方便自己以后查看: #读取文件每一行,写到图片中间位置 ...

  6. Python脚本—批量图片格式转换

    使用Python的os.sys.PIL库完成批量图片格式转换 import os import sys from PIL import Imageinput_folder = r'D:\Toolkit ...

  7. python实现给图片添加高斯噪声

    import cv2 import numpy as npdef add_gaussian_noise(image_in, noise_sigma):"""给图片添加高斯 ...

  8. yolov3 python接口_darknetyolov3调用Python接口来检测和保存批处理图像,DarknetYoloV3,python,进行,批量,图片,并...

    将主函数替换即可. # 将检测结果绘制到照片上并且保存 if __name__ == "__main__": #os.environ["CUDA_VISIBLE_DEVI ...

  9. python下载批量图片

    本次研究的是用python批量下载豆瓣里面某位女明星的照片到本地,按照分页来处理,下载路径也是分页来保存. #code:--utf8-- #author:bingw #create_time:2022 ...

最新文章

  1. Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集......
  2. 解决 nfs挂载错误wrong fs type, bad option, bad superblock
  3. 以计算机网络为中介的人际传播,以计算机为中介的人际传播理论范式
  4. 数字图像恢复matlab结论,matlab模糊图像恢复数字图像处理
  5. Ubuntu安装python3虚拟环境
  6. 强悍的 Ubuntu —— 粘贴板
  7. Datatable 去除重复行
  8. EXCEL滚动表格时保持第一行标题不动
  9. Adblock PLus 插件chrome用
  10. keil中断函数的写法_中断函数写法的比较
  11. 树莓派做百度云盘离线下载器BaiduPCS-Go web,树莓派与windows互传文件
  12. 按键精灵使用百度文字识别(百度ocr)教程
  13. c# 计算圆锥的体积_急求用c#计算圆柱体和圆锥体的体积的代码,下面是要求:...
  14. 思考与总结:我对管理岗位的思考
  15. 传奇服务器如何修改装备,架设传奇私服时怎样修改装备图标
  16. 第九章(8)多元函数的极值及求法
  17. 设置软件的默认打开方式
  18. 什么是SEO?搜索引擎优化是什么意思?
  19. nodejs request库拉取jsp接口 gb2312、GBK中文乱码解决方法
  20. android 设置头像以及裁剪功能

热门文章

  1. css ltimg gt只适应,css3动画,CSS3实战小技巧--使用CSS变量实现波浪动画
  2. 计算机安装应用程序卸的步骤,电脑软件怎么卸载,干货在这里,如何卸载电脑上安装的软件...
  3. mysql 超时_为MySQL设置查询超时
  4. 修改kafka java环境_单节点Kafka、Zookeeper安装、启用过程(Windows OS环境)
  5. linux boost 1.53编译,boost-1.53源码编译
  6. spring mvc和rest风格小例子
  7. Controller接口控制器详解(1)
  8. android源码出现的@字符代表什么意思
  9. java json html模板,基于jQuery的AJAX和JSON实现纯html数据模板(转载)
  10. linux基础练习,Linux基础指令练习