Python Pillow – 创建一个水印

Python Pillow – 创建一个水印

在这篇文章中,我们将看到如何使用Python中的Pillow库来创建一个水印。Pillow是一个Python图像库(PIL),用于操作图像和处理不同格式的图像,如(’jpeg’、’png’、’gif’、’tiff’等)。你可以用Pillow库做各种图像处理,如调整大小、创建水印、旋转图像、合并各种图像、模糊图像等。PIL在照片浏览器中显示图像。

安装:

要安装这个库,在你的命令提示符下运行以下命令。

python -m pip install pip

或者,

python -m pip install pillow

如果你的设备中已经安装了pip和pillow,系统会提到 “已经满足要求:”

Python Pillow - 创建一个水印

有两种类型的水印。

1.文字水印。
2.图像水印。

文字水印

这是一种文本文件版权保护的方法。在一个图像中,我们可以在图像上放置一些简单的自定义文本,并采用不同的字体和格式。

第1步:导入所有库

# importing the library
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np

第2步:用图片浏览器打开图片。

image = Image.open("puppy.jpg")
  
# this open the photo viewer
image.show() 
plt.imshow(image)

输出:

Python Pillow - 创建一个水印

第3步:创建文本水印

# text Watermark
from PIL import ImageFont
from PIL import ImageDraw
watermark_image = image.copy()
  
draw = ImageDraw.Draw(watermark_image)
font = ImageFont.truetype("arial.ttf", 50)
  
# add watermark
draw.text((0, 0), "puppy", 
          (0, 0, 0), font=font)
plt.subplot(1, 2, 1)
plt.title("black text")
plt.imshow(watermark_image)
  
# add watermark
draw.text((0, 0), "puppy", 
          (255, 255, 255), font=font)
plt.subplot(1, 2, 2)
plt.title("white text")
plt.imshow(watermark_image)

输出:

Python Pillow - 创建一个水印

以下是基于上述方法的完整方案:

# import all the libraries
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
import matplotlib.pyplot as plt
import numpy as np
  
# image opening
image = Image.open("puppy.jpg")
# this open the photo viewer
image.show()  
plt.imshow(image)
  
# text Watermark
watermark_image = image.copy()
  
draw = ImageDraw.Draw(watermark_image)
# ("font type",font size)
font = ImageFont.truetype("arial.ttf", 50)
  
# add Watermark
# (0,0,0)-black color text
draw.text((0, 0), "puppy", (0, 0, 0), font=font)
plt.subplot(1, 2, 1)
plt.title("black text")
plt.imshow(watermark_image)
  
# add Watermark
# (255,255,255)-White color text
draw.text((0, 0), "puppy", (255, 255, 255), font=font)
plt.subplot(1, 2, 2)
plt.title("white text")
plt.imshow(watermark_image)

输出:

Python Pillow - 创建一个水印

解释:

  1. 导入所有用于图像处理的库。
  2. 使用Image.open()来打开图片,使用image.show()来打开照片查看器。
  3. plt.imshow()用于在IDE中打开图像。
  4. 为创建水印图像制作一份图像的副本。
  5. 使用ImageDraw使图像可编辑。
  6. 使用ImageFont来指定字体和字体大小。
  7. 创建ImageDraw模块的draw方法,并将图像作为参数传入该函数。
  8. 使用ImageFont模块的函数truetype()创建一个字体,因为它需要两个参数,即(“字体类型”,大小)
  9. 然后使用draw对象的text()函数,并传递了4个参数(文本的起始点,”样本文本”,颜色,ImageFont对象)。
  10. plt.Imshow(watermark_image)进行输出。

图像水印

它是一种用于将图像粘贴到另一个图像上的方法。它需要两个参数,一个是要粘贴的图像,另一个是要粘贴图像的地方。

第1步:导入库

# importing the library
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np

第2步:用图片浏览器打开图片

# read image
image=Image.open("lion.jpg")
image.show() 
plt.imshow(image)

Python Pillow - 创建一个水印

第3步:创建图像水印

# image watermark
size = (500, 100)
crop_image = image.copy()
crop_image.thumbnail(size)
  
# add watermark
copied_image = image.copy()
copied_image.paste(crop_image, (500, 200))
plt.imshow(copied_image)

Python Pillow - 创建一个水印

以下是基于上述方法的完整方案:

# import all the libraries
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
  
# to open the image
image = Image.open("lion.jpg")
# this open the photo viewer
image.show()
plt.imshow(image)
  
# image watermark
size = (500, 100)
crop_image = image.copy()
# to keep the aspect ration in intact
crop_image.thumbnail(size)
  
# add watermark
copied_image = image.copy()
# base image
copied_image.paste(crop_image, (500, 200))
# pasted the crop image onto the base image
plt.imshow(copied_image)

输出:

Python Pillow - 创建一个水印

一步一步解释:

  1. 导入所有用于图像处理的库。
  2. 使用open()来打开图片,使用show()来打开图片浏览器。

  3. plt.imshow()用于在IDE中打开图像。

  4. 使用copy()模块复制crop_image中的图像。
  5. Crop_image.thumbnail(size) – 缩略图用于保持长宽比不变。
  6. copied_image=image1.copy()是用来保持图像的基础,我们将把图像粘贴到上面。
  7. paste()用于将图像粘贴到复制的图像中,使用的两个参数是(crop_image和要粘贴的位置)。
  8. plt.imshow()来显示图像。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python pil