【问题标题】:Resize an image in Django before upload?上传前在Django中调整图像大小?
【发布时间】:2017-06-26 20:02:14
【问题描述】:

如何在 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 视图中执行此操作而无需先上传图像?

【问题讨论】:

  • 也许,您想在存储之前调整图像大小?您无法强制用户不提交其他尺寸的图片
  • 在上传到服务器之前使用 html5 调整大小。

标签: python django pillow


【解决方案1】:

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

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

但是,如果您想操作已上传的图像,pillow(您提到的 PIL 的维护分支)是您需要的工具。提交表单后(我假设您是通过表单获取图像),该文件将在您的服务器上,并且对该文件的引用将在您的 request.FILESview 中提供。您可以对该图像做任何您想做的事情,然后根据您的要求将其保存到磁盘上的原始位置或其他位置

【讨论】:

    猜你喜欢
    • 2015-08-06
    • 2013-10-03
    • 1970-01-01
    • 2013-11-29
    • 2015-06-19
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多