python实现水印图片功能

当我们需要在图片上传或者共享时,为其添加水印,提高图片的防伪能力,使其更具有版权保护性。在python中实现图片水印的方法如下:

1.安装Pillow库

Pillow是Python的图像处理库,实现了多种图片读写格式。我们可以使用pip工具直接安装。

pip install Pillow

2.加载图片

在python中加载图片使用Pillow库中的Image对象。通过Image.open方法读取图片生成Image对象。

from PIL import Image

# 读取图片
img = Image.open('image.jpg')

3.添加水印

我们可以通过将文字或图片作为水印,使用Pillow库中的draw方法将水印添加到图片中。

增加文字水印

from PIL import Image, ImageDraw, ImageFont

# 读取图片
img = Image.open('image.jpg')

# 添加文字水印
draw = ImageDraw.Draw(img)
text = 'watermark'
size = 36
color = (255, 255, 255)
width, height = img.size
font = ImageFont.truetype('Arial.ttf', size)
textwidth, textheight = draw.textsize(text, font)
draw.text(((width - textwidth) / 2, (height - textheight) / 2), text, font=font, fill=color)

# 保存图片
img.save('watermark.jpg')

增加图片水印

from PIL import Image

# 读取图片
img = Image.open('image.jpg')

# 读取水印图片
watermark = Image.open('watermark.png')

# 将水印图片缩略并调整透明度
watermark.thumbnail((100, 100))
watermark.putalpha(128)

# 将水印添加到图片中
img.paste(watermark, (10, 10), watermark)

# 保存图片
img.save('watermark.jpg')

示例说明

示例1

现在我们需要对一张名为image1.jpg的图片添加文字水印,并将其保存为watermark1.jpg

from PIL import Image, ImageDraw, ImageFont

# 读取图片
img = Image.open('image1.jpg')

# 添加文字水印
draw = ImageDraw.Draw(img)
text = 'watermark'
size = 36
color = (255, 255, 255)
width, height = img.size
font = ImageFont.truetype('Arial.ttf', size)
textwidth, textheight = draw.textsize(text, font)
draw.text(((width - textwidth) / 2, (height - textheight) / 2), text, font=font, fill=color)

# 保存图片
img.save('watermark1.jpg')

示例2

我们需要对一张名为image2.jpg的图片添加图片水印,并将其保存为watermark2.jpg

from PIL import Image

# 读取图片
img = Image.open('image2.jpg')

# 读取水印图片
watermark = Image.open('watermark.png')

# 将水印图片缩略并调整透明度
watermark.thumbnail((100, 100))
watermark.putalpha(128)

# 将水印添加到图片中
img.paste(watermark, (10, 10), watermark)

# 保存图片
img.save('watermark2.jpg')

以上就是实现图片水印的完整攻略。

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

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

相关文章

  • Python 装饰器实现DRY(不重复代码)原则

    一、什么是DRY原则 DRY指的是Don’t Repeat Yourself 不要重复自己。DRY 原则是软件工程中的一种经典理论,它强调避免重复代码。重复代码是一种代码“坏味道”,会增加代码的复杂性、维护成本和代码的可读性。 二、装饰器是什么 Python中,装饰器是一种可以动态地修改一个函数或类的行为的技术。装饰器本质上是一个函数,它的输入是被装饰的函数…

    python 2023年6月3日
    00
  • 使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解

    BeautifulSoup是Python中一个常用的HTML和XML解析库,它可以帮助我们遍历文档树并对标签进行操作。在本文中,我们将深入讲解BeautifulSoup的用法,并提供两个示例,以便更好地理解这个过程。 BeautifulSoup的基本用法 BeautifulSoup的基本用法如下: 使用BeautifulSoup库的bs4模块解析HTML或X…

    python 2023年5月15日
    00
  • 数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法

    对于这个问题,我可以给出以下详细的攻略,分别涵盖如何将数组保存为txt、npy、csv文件以及如何使用enumerate函数进行数组遍历。 数组保存为txt文件 将数组保存为txt文件可以使用Python自带的open函数进行操作。具体步骤如下所示: 引入csv库 import csv 定义数组 假设我们需要保存的数组名为 arr。 打开文件并将数组写入 w…

    python 2023年6月3日
    00
  • python 文件操作api(文件操作函数)

    下面是关于Python文件操作API(文件操作函数)的完整攻略: 文件操作函数概览 下面是Python中常用的文件操作函数: open():打开文件,创建一个文件对象 close():关闭文件 read():从文件读取数据 write():将数据写入文件 seek():移动文件指针 tell():返回文件指针的当前位置 flush():将缓冲区的数据写入文件…

    python 2023年6月2日
    00
  • python获取命令行参数实例方法讲解

    下面是Python获取命令行参数的实例方法攻略: 目录 为什么需要命令行参数? 获取命令行参数的三种方法 方法一:sys.argv 方法二:argparse 方法三:click 示例1:sys.argv的使用 示例2:argparse的使用 为什么需要命令行参数? 命令行参数指的是在命令行中输入程序执行命令时,传递给程序的参数。比如在命令行执行 python…

    python 2023年6月3日
    00
  • python入门课程第三讲之编码规范知多少

    Python入门课程第三讲之编码规范知多少 在Python编程中,编码规范是非常重要的,它可以提高代码的可读性、可维性和可扩展性。在本文中,我们将详细讲解Python编码规范的基本知识,包括命名规范、缩规范、注释规范等。 命名规范 在Python编程中,命名规范是非常重要的。下面是一些常见的命名规范: 变量名应该使用小写字母,单词之间使用下划线分隔。 函数名…

    python 2023年5月13日
    00
  • python中open函数的基本用法示例

    Python中open函数的基本用法示例 在Python中,我们可以使用open()函数来打开文件,进行读写操作。open()函数使用起来非常简单,本篇攻略将对open()函数进行详细讲解。 语法格式: open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, c…

    python 2023年6月5日
    00
  • Python 常用内置模块超详细梳理总结

    Python 常用内置模块超详细梳理总结 Python有很多内置模块可以帮助我们完成各种任务,从操作文件到处理数据,从网络编程到加密,从调试工具到GUI编程,Python库提供了几乎所有你需要的功能。 下面将列举常用的内置模块,同时讲解其使用方法。 os模块 os模块为我们提供了一种使用操作系统功能的方法。其中包含了文件I/O、目录,进程,管道,定时器等许多…

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