python嵌入图像水印怎么写
时间: 2023-02-26 12:34:57 浏览: 126
为图像嵌入水印,需要使用图像处理库,比如 Pillow。下面是一个简单的例子:
```python
from PIL import Image, ImageDraw, ImageFont
# 打开图像
img = Image.open("input.jpg")
# 创建一个 ImageDraw 对象
draw = ImageDraw.Draw(img)
# 选择字体,这里使用系统自带的字体
font = ImageFont.truetype("arial.ttf", 36)
# 在图像上写入文字
draw.text((0, 0), "Hello, World!", fill=(255, 255, 255), font=font)
# 保存图像
img.save("output.jpg")
```
上面的代码打开了一个名为 `input.jpg` 的图像,在其上添加了一个文字水印 "Hello, World!",然后保存为另一个名为 `output.jpg` 的图像。
这是一个简单的例子,更多细节可以参考 Pillow 的文档。
相关问题
python给图像嵌入数字水印
可以使用 Python 库如 OpenCV、Pillow 来为图像嵌入数字水印。
下面是使用 OpenCV 的示例代码:
```
import cv2
# 读取图像
img = cv2.imread("input.jpg")
# 添加文本
font = cv2.FONT_HERSHEY_SIMPLEX
bottomLeftCornerOfText = (10, 500)
fontScale = 1
fontColor = (255, 255, 255)
lineType = 2
cv2.putText(img, "Watermark",
bottomLeftCornerOfText,
font,
fontScale,
fontColor,
lineType)
# 保存图像
cv2.imwrite("output.jpg", img)
```
上面代码将文本 "Watermark" 添加到了图像的左下角。您可以修改文本、位置、字体等参数,以满足您的需求。
Python实现嵌入水印
### 使用Python实现图片或文档嵌入水印
#### 图像中嵌入可见水印
对于图像处理,`Pillow` 是一个强大的库,可以用来操作图像并为其添加水印。
```python
from PIL import Image, ImageDraw, ImageFont
def add_watermark(image_path, output_path, text="Sample Watermark"):
image = Image.open(image_path).convert('RGBA')
txt_layer = Image.new('RGBA', image.size, (255, 255, 255, 0))
draw = ImageDraw.Draw(txt_layer)
font_size = int(min(image.size) / 10)
try:
fnt = ImageFont.truetype("arial.ttf", size=font_size)
except IOError:
fnt = ImageFont.load_default()
width, height = image.size
text_width, text_height = draw.textsize(text, font=fnt)
position = ((width-text_width)/2,(height-text_height)/2)
draw.text(position, text=text, fill=(255, 255, 255, 70), font=fnt)
combined_image = Image.alpha_composite(image, txt_layer)
combined_image.save(output_path, format='PNG')
add_watermark('input.png', 'output_with_watermark.png')
```
这段代码展示了如何读取一张输入图片,在其上绘制透明度较低的文字作为水印,并保存带有新图层的结果[^1]。
#### 文档中嵌入隐形水印
针对Microsoft Word文档的操作可以通过 `python-docx` 来完成;而对于PowerPoint,则可利用 `python-pptx` 实现更复杂的功能如隐藏对象的插入。下面给出的是向Word文档内加入隐蔽信息的例子:
```python
import docx
from docx.shared import Pt
doc = docx.Document()
paragraph = doc.add_paragraph()
run = paragraph.add_run('This is a hidden watermark.')
font = run.font
font.hidden = True # 设置字体属性为隐藏状态
doc.save('document_with_hidden_text.docx')
```
此段脚本创建了一个新的Word文档并将一段文本设为了不可见形式存储进去。
至于PowerPoint方面,如果想要真正意义上做到“看不见”的水印(比如通过特定软件才能查看),则涉及到更加复杂的编码逻辑和技术细节,超出了简单示例所能覆盖的内容范围。不过基本思路还是围绕着修改幻灯片内部结构而不改变外观来进行开发[^2]。
阅读全文