flask html缩放图片
时间: 2023-10-24 08:07:57 浏览: 105
要缩放图片,可以使用 Flask 中的 Pillow 库。Pillow 库提供了 Image 类,可以用来处理图片。你需要在你的 Flask 应用中安装 Pillow 库,可以使用 pip 命令来安装:
```
pip install Pillow
```
下面是一个示例代码,可以将图片缩放到指定大小:
```python
from flask import Flask, request, render_template
from PIL import Image
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
file = request.files['file']
img = Image.open(file.stream)
width, height = img.size
new_width = int(request.form['width'])
new_height = int(request.form['height'])
img = img.resize((new_width, new_height))
return img.tobytes(), 200, {'Content-Type': 'image/jpeg'}
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
```
在上面的代码中,我们使用了 Flask 的请求对象 request 来获取上传的图片文件,然后使用 Pillow 库的 Image 类打开图片。接着,我们获取了图片的原始宽度和高度,以及用户指定的新宽度和高度,然后使用 resize() 方法将图片缩放到指定大小。最后,我们将缩放后的图片转换为字节流并返回给客户端。
在 HTML 模板中,你可以使用一个表单来上传图片,并指定要缩放的宽度和高度:
```html
<!DOCTYPE html>
<html>
<head>
<title>Flask Image Resizer</title>
</head>
<body>
<h1>Flask Image Resizer</h1>
<form method="post" enctype="multipart/form-data">
<p>
<input type="file" name="file" accept="image/*">
</p>
<p>
<label>Width:</label>
<input type="number" name="width" value="200">
</p>
<p>
<label>Height:</label>
<input type="number" name="height" value="200">
</p>
<p>
<input type="submit" value="Resize">
</p>
</form>
</body>
</html>
```
在上面的 HTML 模板中,我们使用了一个表单来上传图片,并使用 input 元素来指定要缩放的宽度和高度。当用户点击“Resize”按钮时,表单会被提交到 Flask 应用中,并执行缩放操作。最后,缩放后的图片将会在浏览器中显示出来。
阅读全文