1. imwatermark
库的功能
- 嵌入水印:将指定的信息(如文本或二进制数据)嵌入到图像中。
- 提取水印:从图像中提取嵌入的水印信息。
- 鲁棒性:水印通常对图像的压缩、裁剪、旋转等操作具有一定的鲁棒性。
2. WatermarkEncoder
的使用
pip install imwatermark
from imwatermark import WatermarkEncoder
from PIL import Image
import numpy as np # 初始化 WatermarkEncoder
encoder = WatermarkEncoder() # 设置水印信息(可以是文本或二进制数据)
watermark_text = "Copyright 2023"
encoder.set_watermark('bytes', watermark_text.encode('utf-8')) # 加载图像
image = Image.open("input_image.jpg")
image_np = np.array(image) # 嵌入水印
watermarked_image_np = encoder.encode(image_np, 'rgb') # 保存带水印的图像
watermarked_image = Image.fromarray(watermarked_image_np)
watermarked_image.save("watermarked_image.jpg") # 提取水印
decoder = WatermarkEncoder()
extracted_watermark = decoder.decode(watermarked_image_np, 'rgb')
print("Extracted Watermark:", extracted_watermark.decode('utf-8'))