Python 实现给图片加文字或logo水印

Python 实现给图片加文字或logo水印

什么是水印

水印(Watermark)是指在一幅图片、视频或文档上加上特定的信息或标记,目的是表明该文件的所有权或者指示该文件的特定用途。

Python 库

在 Python 中,我们可以使用 PIL (Python Image Library) 或者它的 fork Pillow 这两个库来实现给图片加水印。

安装 PIL or Pillow

pip install Pillow

添加文字水印

在使用 PIL 或 Pillow 给图片添加文字水印时,需要先加载图片,然后创建一个 ImageDraw 对象,并调用它的 text 方法来在图片上写入文本。最后,将处理后的图像保存到本地文件或直接显示到屏幕。

下面是一个实现的示例:

from PIL import Image, ImageDraw, ImageFont

def add_text_watermark(image_path, text, pos):
    image = Image.open(image_path)
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype('arial.ttf', 36)
    draw.text(pos, text, font=font, fill=(255, 255, 255, 128))
    image.show()

上面的代码通过加载给定路径的图片文件,创建 ImageDraw 对象,使用指定的字体和颜色向图片的指定位置写入文本,最后以对话框展示处理后的图片。

添加图片水印

在使用 PIL 或 Pillow 给图片添加图片水印时,需要先加载图片,然后打开水印图片,将水印图像缩放到合适大小,再将其按照指定的位置粘贴到主图片上。最后,将处理后的图像保存到本地文件或直接显示到屏幕。

下面是一个实现的示例:

from PIL import Image

def add_image_watermark(image_path, watermark_path, pos):
    image = Image.open(image_path)
    watermark = Image.open(watermark_path)
    watermark = watermark.resize((image.size[0]//4, image.size[1]//4))
    image.paste(watermark, pos, watermark)
    image.show()

上面的代码通过加载给定路径的图片文件,缩小水印图像的尺寸,按照指定的位置粘贴到主图片上面,最后以对话框展示处理后的图片。

示例

以下是调用 add_text_watermark() 和 add_image_watermark() 两个函数的示例:

# 添加文本水印
add_text_watermark('original.jpg', 'My Photo', (100, 100))

# 添加图片水印
add_image_watermark('original.jpg', 'watermark.png', (0, 0))

此时你应该已经实现了在 Python 中添加水印给图片的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 实现给图片加文字或logo水印 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • python列表的构造方法list()

    以下是“Python列表的构造方法list()”的详细攻略。 Python列表的构造方法list() 在Python中,列表是一种常见的数据类型,它可以存储多个值。Python提供了list()来创建一个新的列表。list()方法可以接受一个可迭代对象作为参数,例如字符串、元组、集合等。list()方法将可迭代对象转换为列表,并返回该列表。 list()方法…

    python 2023年5月13日
    00
  • 利用python的socket发送http(s)请求方法示例

    利用 Python 的 socket 发送 HTTP(S) 请求方法示例 在 Python 中,我们可以使用 socket 模块来发送 HTTP(S) 请求。以下是利用 Python 的 socket 发送 HTTP(S) 请求方法示例的详细介绍。 发送 HTTP 请求示例 以下是一个发送 HTTP 请求的示例: import socket # 创建 soc…

    python 2023年5月15日
    00
  • 详解python string类型 bytes类型 bytearray类型

    Python中的字符串类型string 在Python中,字符串类型为内置数据类型之一,用于表示文本类型的数据。Python的字符串类型是不可变的,这意味着你不能改变一个字符串的值。Python的字符串类型有很多内置方法,可用于字符串的各种操作,如切片,查找,替换等。 创建字符串 Python中创建字符串的方法有两种:用单引号(‘)或双引号(“)将字符围起来…

    python 2023年6月5日
    00
  • python 求定积分和不定积分示例

    针对“python 求定积分和不定积分示例”的完整攻略,我将分成以下几个部分进行讲解: 介绍Python求积分的基本方法 求解不定积分示例 求解定积分示例 1. Python求积分的基本方法 Python中求解积分涉及到的主要模块是scipy。其中scipy.integrate模块提供了多种用于求解积分的函数,常用的有: quad():用于求解一般积分(即不…

    python 2023年5月18日
    00
  • Python 3.7 数据类中的类继承

    【问题标题】:Class inheritance in Python 3.7 dataclassesPython 3.7 数据类中的类继承 【发布时间】:2023-04-05 07:29:02 【问题描述】: 我目前正在尝试 Python 3.7 中引入的新数据类结构。我目前坚持尝试对父类进行一些继承。看起来参数的顺序被我当前的方法搞砸了,因此子类中的 bo…

    Python开发 2023年4月5日
    00
  • Python @property原理解析和用法实例

    Python@property原理解析和用法实例 在Python中,@property是一个装饰器,用于将方法转换为属性。本文将详细解@property的作用、用法及示例。 @property的作用 @property装饰器可以将一个方法转换为属性,使得我们可以像访问属性一样访问方法。这样可以使代码更加简洁、易读。 @property的用法 以下是一个使用@…

    python 2023年5月15日
    00
  • Python语言实现二分法查找

    Python语言实现二分法查找 二分法查找是一种常见的查找算法,它可以在有序数组中快速查找目标元素。本文将介绍如何使用Python语言实现二分法查找。 1. 算法原理 二分法查找的基本思想是:将有序数组分成两部分,取中间元素与目标元素进行比较,相等则返回中间元素的下标,如果目标元素小于中间元素,则在左半部分继续查找,否则在右半部分继续查找,直到找到目标元素或…

    python 2023年5月14日
    00
  • python第三方异步日志库loguru简介

    Python第三方异步日志库Loguru简介 什么是Loguru Loguru是一个Python第三方库,用于快速处理各种日志数据。它可以高效地处理各种的输入和输出,适用于各种规模的项目。它拥有许多功能,如异步记录和自动文件轮换,可以满足不同场景的需求。 安装 运行下列命令即可安装: pip install loguru 使用 基础使用 通过以下简单的例子来…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部