当前位置: 首页 > article >正文

通过Python的PIL库给图片添加文本水印

文章目录

  • 前言
  • 一、PIL是什么?
  • 二、安装PIL
  • 三、查看PIL版本
  • 四、使用PIL库给图片添加文本水印
    • 1.引入库
    • 2.打开图片文件
    • 3.新建一个Draw对象
    • 4.设置水印文字、字体、大小
    • 5.设置水印颜色
      • 5.1通过名称设置颜色
      • 5.2通过RGB值设置颜色
      • 5.3通过RGBA值设置颜色
      • 5.4通过十六进制设置颜色
    • 6.获取水印文字的尺寸
    • 7.设置水印位置
      • 7.1左上
      • 7.2右下
    • 8.添加水印
    • 9.保存图片
  • 总结


前言

大家好,我是空空star,本篇给大家分享一下通过Python的PIL库给图片添加文本水印。


一、PIL是什么?

PIL是Python Imaging Library的缩写,它是Python语言中常用的图像处理库之一。它提供了丰富的图像处理功能,包括打开、保存、裁剪、旋转、缩放等操作,并支持多种图像格式。

二、安装PIL

pip install pillow

三、查看PIL版本

pip show pillow

Name: Pillow
Version: 9.4.0
Summary: Python Imaging Library (Fork)
Home-page: https://python-pillow.org
Author: Alex Clark (PIL Fork Author)
Author-email: aclark@python-pillow.org
License: HPND
Requires:
Required-by: image, imageio, matplotlib, pytesseract, wordcloud

四、使用PIL库给图片添加文本水印

1.引入库

from PIL import Image, ImageDraw, ImageFont

2.打开图片文件

local = '/Users/kkstar/Downloads/video/pic/'
image = Image.open(local+"demo.jpg")

3.新建一个Draw对象

draw = ImageDraw.Draw(image)

4.设置水印文字、字体、大小

text = '@空空star'
font = ImageFont.truetype('STHeitiMedium.ttc', size=80)

5.设置水印颜色

5.1通过名称设置颜色

# 通过名称设置颜色-黄色
color = 'yellow'

5.2通过RGB值设置颜色

# 通过RGB值设置颜色-红色
color = (255, 0, 0)

5.3通过RGBA值设置颜色

# 通过RGBA值设置颜色-白色
color = (255,255,255,0)

5.4通过十六进制设置颜色

# 通过十六进制设置颜色-绿色
color = '#6FE000'

6.获取水印文字的尺寸

text_width, text_height = draw.textsize(text, font)

7.设置水印位置

7.1左上

x = 30
y = 30

7.2右下

x = image.width-text_width-30
y = image.height-text_height-30

其他位置调整x、y的值即可。这个30是我这样设置的,你也可以根据自己的喜好来调整。

8.添加水印

draw.text((x, y), text, font=font, fill=color)

9.保存图片

image.save(local+'image_with_watermark.jpg')

总结


http://www.kler.cn/news/16493.html

相关文章:

  • 【网络协议详解】——GNS3的使用(学习笔记)
  • 计算机网络笔记:TCP协议 和UDP协议(传输层)
  • ChatGPT调教指南(中文)
  • 回到大学时光,我想对当时的自己说些什么
  • DDD系列:四、领域层设计规范
  • 存储资源调优技术——SmartThin智能精简配置技术
  • C++动态规划模板汇总大全
  • STM32物联网实战开发(4)——基本定时器
  • 32k*16 薪,3年自动化测试历经3轮面试成功拿下华为Offer....
  • 【Java笔试强训 7】
  • GEE:MODIS计算遥感指数(NDVI、BSI、NDSI、EVI、LSWI、SIPI、EBI等)
  • 吉布斯采样方法
  • 设计模式-单例模式
  • 一文搞懂PMP挣值管理那些让你头疼的公式
  • mockjs学习笔记
  • maven中的 type ,scope的作用
  • 2335. 装满杯子需要的最短总时长
  • 83. map函数()-通过函数实现对可迭代对象的操作(适合零基础)
  • 「SQL面试题库」 No_55 销售分析 I
  • ramfs, rootfsinitramfs
  • HTML(四) -- 多媒体设计
  • CCD视觉检测设备如何选择光源
  • 【面试长文】HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异
  • Blender启动场景的修改
  • 资讯汇总230503
  • 哈希表企业应用-DNA的字符串检测
  • CKA/CKS/CKAD认证考试攻略
  • 【五一创作】( 字符串) 409. 最长回文串 ——【Leetcode每日一题】
  • 【LeetCood206】反转链表
  • Python小姿势 - Python学习笔记——类与对象