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排序算法的简单实现方法

    下面是关于“Python排序算法的简单实现方法”的完整攻略。 1. 排序算法简介 排序算法是计算机科学中的一种基本算法,它将一组数据按照特定的顺序进行排列。排序算法可以分为内部排序和外部排序两种。内部排序是指所有数据都可以放在内存中进行排序,而外部排序则是指数据量太大,无法全部放在内存中进行排序,需要借助外部存储器进行排序。 常见的内部排序算法有冒泡排序、选…

    python 2023年5月13日
    00
  • Python中的单行、多行、中文注释方法

    Python中的注释是添加在代码中的说明性文字,用于给程序员或其他阅读者解释代码的含义。Python支持三种注释方式,即单行注释、多行注释和中文注释。下面我将详细讲解这三种注释方式的使用方法。 1. 单行注释 单行注释是指在代码某一行后面添加注释的方式。在Python中,单行注释以#开头,#后面的内容都被视为注释。单行注释通常用于简短的注释,用于解释代码的某…

    python 2023年5月31日
    00
  • 详解Pandas和NumPy的区别

    Pandas和NumPy是Python中重要的数据分析库,两者都是基于Python语言开发的。两者有很多相似之处,比如都适用于数据的处理、分析和可视化,但也有很大的差异。下面将详细讲解Pandas和NumPy的区别。 1. 数据类型 NumPy中有一个基本数据类型ndarray,是用于科学计算中处理大型数据集的基本结构。该结构是多维数组,支持基本的数学和统计…

    python-answer 2023年3月25日
    00
  • Python使用MD5加密字符串示例

    下面是“Python使用MD5加密字符串示例”的完整攻略。 具体步骤 步骤1:导入hashlib 首先,我们需要导入Python的hashlib模块,以便使用其中的MD5加密功能。在Python中,可以通过以下方式导入hashlib模块: import hashlib 步骤2:创建MD5加密对象 要使用MD5加密字符串,我们需要创建一个MD5加密对象。创建方…

    python 2023年6月2日
    00
  • 解决python 输出是省略号的问题

    以下是解决Python输出省略号的问题的完整攻略: 1. 省略号的原因 当我们使用print函数打印一个字符串或者列表时,如果字符串或列表的长度超过了一定值,默认情况下,Python会将其缩写成省略号(…)。这是因为Python默认的print()函数打印字符串或列表时,会将它们缩写成一定长度以内的形式,以便于观察和调试。 2. 解决方法一:修改打印长度…

    python 2023年6月5日
    00
  • Python爬虫之Selenium实现窗口截图

    下面是“Python爬虫之Selenium实现窗口截图”的攻略: 1. 安装Selenium 首先需要安装Selenium,可使用pip包管理器,输入以下命令: pip install selenium 2. 下载Chromedriver 使用Selenium需要下载浏览器驱动,这里以Chrome浏览器为例,下载对应版本的Chromedriver,在http…

    python 2023年5月14日
    00
  • python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)

    在Python中,可以使用json模块进行JSON数据格式的转换。json模块提供了dumps()和loads()方法,用于将Python对象转换为JSON字符串和将JSON字符串转换为Python对象。此外,还可以使用dicttostr()和strtodict()方法,用于将字典转换为JSON字符串和将JSON字符串转换为字典。以下是详细的攻略,介绍Pyt…

    python 2023年5月14日
    00
  • Python 20行简单实现有道在线翻译的详解

    Python 20行简单实现有道在线翻译的详解 介绍 本文介绍了一个Python实现有道在线翻译的小工具,它只有20行代码。该工具使用的是有道翻译的API,需要使用该API的调用功能。使用该工具需要有有道翻译API的key和keyfrom。 准备工作 使用该工具需要有python的环境,建议使用python3版本。在代码中需要使用requests库,可以通过…

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