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

news/2024/7/21 5:29:35 标签: 图像处理, 人工智能, python

文章目录

  • 前言
  • 一、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

python">pip install pillow

三、查看PIL版本

python">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.引入库

python">from PIL import Image, ImageDraw, ImageFont

2.打开图片文件

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

3.新建一个Draw对象

python">draw = ImageDraw.Draw(image)

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

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

5.设置水印颜色

5.1通过名称设置颜色

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

5.2通过RGB值设置颜色

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

5.3通过RGBA值设置颜色

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

5.4通过十六进制设置颜色

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

6.获取水印文字的尺寸

python">text_width, text_height = draw.textsize(text, font)

7.设置水印位置

7.1左上

python">x = 30
y = 30

7.2右下

python">x = image.width-text_width-30
y = image.height-text_height-30

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

8.添加水印

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

9.保存图片

python">image.save(local+'image_with_watermark.jpg')

总结


http://www.niftyadmin.cn/n/233203.html

相关文章

vue项目使用elementui上传组件 打包后报错t.upload.addEventListener is not a function的解决方案

错误问题 Vue:xhr.upload.addEventListener is not a function 这个问题是因为mockjs改动了axios里面XMLHttpRequest对象致使的 根据axios源码 l是一个XMLHttpRequest对象 mockJs把l变量从XMLHttpRequest对象改为了MockXMLHttpRequest对象 因此l.upload是一个空对象 空对象…

k8s+kubeedge+sedna安装全套流程+避坑指南+解决办法

最近在学习边缘计算要用到kubeedge,安装了好多次总会遇到各种各样的问题,因此在这里一一列出,以方便下次安装。则里面可能出错的地方太多,如果有问题,请私信联系。 一、环境准备 节点IP环境软件云端节点172.23.70.23…

Arduino-ESP32通过socket和python或MFC进行通信,点灯和温湿度

#include <WiFi.h> #include <WiFiClient.h> #include <ArduinoJson.h>const char* ssid "your_SSID"; const char* password "your_PASSWORD"; const char* server_host "192.168.1.100"; // Python Socket服务器所在主机…

【Redis-面试题及持久化方案】Redis相关面试题(缓存穿透、缓存击穿、缓存血崩) Redis两种持久化方案详情对比(RDB、AOF)

【Redis-面试题及持久化方案】Redis相关面试题&#xff08;缓存穿透、缓存击穿、缓存血崩&#xff09; & Redis两种持久化方案详情对比&#xff08;RDB、AOF&#xff09;1&#xff09;Redis 面试题1.1.高频面试题&#xff1a;缓存穿透、缓存击穿、缓存血崩1.2.低频面试题&a…

QWidget改变背景图的方法和坑

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、添加背景图资源文件二、使用 QPalette三、重写paintEvent() 函数四、使用QT的设计师界面总结前言 本篇文章将讲解QWidget改变背景图的方法和会遇到的问题。…

施工组织设计合集

34-6 施工组织设计02017-年亲曼旗大镇市政道路及广场公园园林绿化工程(第一.A1-1五中教学楼施工组织设计A2施工组织设计(方案) 报审表hasuploaded-中建施|组织设计 (22P)安徽大包庄125万吨疏铁矿斜坡道施工组织设计 (修改)宝山万科四季花城施T组织设计 (126P)对税信息培训中心装…

Flutter中Plugin的创建与发布详细步骤

在开发flutter项目的时分通常会运用一些三方的的packages或许plugin&#xff0c;关于packages和plugin直接的区别主要是&#xff1a;packages主要是包括的Dart代码块&#xff0c;而plugin则包括iOS和android的代码。 因此来说咱们创立plugin和packages的流程是相似的&#xff…

Kafka学习记录

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录阅读前请看一下&#xff1a;我是一…