在上传之前调整Django中的图像大小?

时间:2017-02-09 00:16:52

标签: python django pillow

如何在将图像上传到Django之前调整图像大小?

我有一个用户可以上传图片的屏幕,但在上传之前,我想将其缩放到500,500。

在PIL中,我可以通过以下方式在本地轻松完成:

from PIL import Image

img = Image.open("/Users/Admin/Desktop/example.jpg")
img = img.resize((750,500),Image.ANTIALIAS)
img.save()

如何在Django视图中执行此操作而无需先上传图像?

1 个答案:

答案 0 :(得分:2)

首先,如果您想在服务器上对该文件执行任何操作,则需要上载该文件。这是唯一的方法。

如果您想要做的是在上传之前真正操作图像,则需要在浏览器(客户端)上执行此操作。因此,在上传之前使用术语"浏览器调整大小图片的Google搜索" 会对您有所帮助。您必须使用 javascript 编辑图片,然后将其提交到您的服务器。

但是,如果你想操作已经上传的图像,pillow(你提到的PIL的保持分叉)就是你需要的工具。提交表单后(我假设您通过表单获取图像),该文件将在您的服务器上,并且request.FILES的{​​{1}}将提供对该文件的引用。您可以使用该图像执行任何操作,然后根据您的要求将其 - 保存到磁盘上的原始位置或其他位置 -