栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django图像大小调整并在上传前进行转换

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django图像大小调整并在上传前进行转换

首先,最好建立正确的语言。Django和Python仅存在于服务器端。因此,他们操纵,保存或以其他方式使用的所有内容都必须先发送到服务器。如果要使用Django或Python管理照片,则用户必须首先将此照片上传到服务器。照片上传后,Django可以在存储文件之前自由进行更改。

如果您关注上传带宽,并且不想上传大文件,则必须在客户端上调整照片的大小并重新格式化。如果这是一个Web应用程序,则可以使用Javascript来完成,但是不能使用Python来完成,因为Python无法在像您这样的应用程序的客户端上运行。

如果您不关心带宽,那么您可以自由地让用户“上传”文件,但是在保存之前让Django调整大小并重新格式化。

您是正确的,您将要覆盖照片对象的保存功能。我建议使用库来处理大小调整和重新格式化,例如sorl。

from sorl.thumbnail import ImageField, get_thumbnailclass MyPhoto(models.Model):    image = ImageField()    def save(self, *args, **kwargs):        if self.image: self.image = get_thumbnail(self.image, '500x600', quality=99, format='JPEG')        super(MyPhoto, self).save(*args, **kwargs)

Sorl只是我有信心并熟悉的一个库,但是需要一些调整和配置。您可以检出Pillow或其他东西,而只需替换line
overing即可

self.image

我在这里也发现了类似的问题。

编辑:上面
看到了您的评论回复的更新。另请注意,如果您的网络服务器正在处理Django,并且您的文件已保存到某些CDN,则此方法将起作用。在将图像上载到CDN 之前
,将在网络服务器上对其进行调整大小(假设您的配置符合我的假设)。

希望这可以帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号