你写一个上传图片添加水印的功能
时间: 2023-08-19 11:08:42 浏览: 222
上传图片并加入水印范例
好的,这里提供一个基于Python Flask框架实现上传图片添加水印功能的代码示例:
```python
from flask import Flask, request, render_template, redirect, url_for
from PIL import Image, ImageDraw, ImageFont
import os
app = Flask(__name__)
@app.route('/')
def index():
return render_template('upload.html')
@app.route('/upload', methods=['POST'])
def upload():
# 获取上传的文件
file = request.files['image']
# 保存文件到服务器
filename = file.filename
file.save(os.path.join(app.root_path, 'static', 'uploads', filename))
# 打开图片文件
img = Image.open(os.path.join(app.root_path, 'static', 'uploads', filename))
# 在图片上绘制水印
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 36)
draw.text((10, 10), 'watermark', fill=(255, 255, 255), font=font)
# 保存带有水印的图片
watermarked_filename = 'watermarked_' + filename
img.save(os.path.join(app.root_path, 'static', 'uploads', watermarked_filename))
# 返回带有水印的图片
return redirect(url_for('serve', filename=watermarked_filename))
@app.route('/uploads/<filename>')
def serve(filename):
return send_from_directory('static/uploads', filename)
if __name__ == '__main__':
app.run(debug=True)
```
以上代码实现了一个上传图片添加水印的功能,具体实现流程如下:
1. 用户通过上传图片的表单提交一张图片;
2. 服务器保存图片到指定的目录;
3. 服务器打开图片文件,使用Pillow库在图片上绘制水印;
4. 服务器保存带有水印的图片到指定的目录;
5. 服务器重定向用户到带有水印的图片的URL。
注意:上述代码中的水印仅作为示例,实际使用时应该根据实际需求修改水印的内容和样式。
阅读全文