Python Pillow - 创建水印



什么是水印?

水印是指叠加在另一张图像、文档或对象上的可识别且通常是透明的图像或文本,用于指示所有权、作者身份或来源。水印通常用于保护知识产权和内容,防止未经授权的使用或分发,并提供归属信息。它们服务于以下提到的各种目的:

  • 版权保护 - 艺术家、摄影师和内容创作者经常使用水印来保护他们的知识产权,通过在其作品上标记他们的姓名、徽标或版权信息。这有助于阻止未经授权使用或分发他们的内容。

  • 品牌推广 - 公司和组织使用水印在其图像或文档上打上他们的徽标、名称或口号。这增强了他们的品牌标识,并明确了内容的来源。

  • 文档验证 - 水印可用于官方文件(如证书)以防止伪造或未经授权的复制。例如,文凭或公证文件可能带有水印。

  • 安全 - 在货币和其他安全文档中,复杂的且通常是不可见的。水印用于防止伪造。这些水印难以准确复制,从而更容易检测到假钞或伪造文件。

  • 图像归属 - 在版权图片和图像许可的背景下,水印可用于显示带有水印的图像预览。当用户购买图像时,他们会收到没有水印的版本。

  • 数字媒体 - 在数字世界中,水印通常用于在线共享的图像和视频以保护内容。它们也可用于给予原始创作者荣誉。

水印可以采用各种形式,例如文本、徽标、图案甚至嵌入到内容中的不可见数据。它们通常以难以去除的方式放置,而不会影响内容的质量,其目的是提供真实性或所有权的视觉或数字指示。

创建文本水印

现在让我们探索如何使用 Pillow 库创建文本水印。在 Pillow 中,没有直接创建水印的方法,但我们可以使用ImageDraw、ImageFontImage方法来实现。

以下是本章所有示例中使用的输入图像。

butterfly

示例

在这个示例中,我们使用 Pillow 库创建了文本Tutorialspoint作为水印。

from PIL import Image, ImageDraw, ImageFont
original_image = Image.open("Images/butterfly.jpg")
draw = ImageDraw.Draw(original_image)
watermark_text = "Tutorialspoint"
font_size = 20
font = ImageFont.truetype("arial.ttf", font_size)  
text_color = (255, 255, 255)  

#White color (RGB)
text_width, text_height = draw.textsize(watermark_text, font)
image_width, image_height = original_image.size
margin = 10  

#Margin from the right and bottom edges
position = (image_width - text_width - margin, image_height - text_height - margin)
draw.text(position, watermark_text, font=font, fill=text_color)
original_image.save("output Image/watermarked_image.png")
original_image.show() 

输出

watermarked

创建图像水印

之前我们在图像上创建了文本水印,同样,我们可以使用 Pillow 中可用的ImageDraw、copypaste方法创建图像作为水印。

示例

在这个示例中,我们使用 Pillow 中可用的方法创建了Tutoriaslpoint徽标图像作为水印。

from PIL import Image
original_image = Image.open("Images/butterfly.jpg")
watermark = Image.open("Images/tutorialspoint.png")  
#Use the appropriate image file for your watermark

#Resize the watermark image to a specific width or height
target_width = 200  

#Adjust this to our preferred size
aspect_ratio = float(target_width) / watermark.width
target_height = int(watermark.height * aspect_ratio)
watermark = watermark.resize((target_width, target_height), Image.ANTIALIAS)
watermarked_image = original_image.copy()

#Adjust the position where you want to place the watermark (e.g., bottom right corner)
position = (original_image.width - watermark.width, original_image.height - watermark.height)
watermarked_image.paste(watermark, position, watermark)
watermarked_image.save("output Image/watermarked_image.jpg")
watermarked_image.show()

输出

watermarked Tutorialspoint
广告

© . All rights reserved.