AI智能
改变未来

Django(71)图片处理器django-imagekit

#介绍

ImageKit

是用于处理图像的

Django

应用程序。如果需要从原图上生成一个长宽为50×50的图像,则需要

ImageKit

ImageKit

附带了一系列图像处理器,用于调整大小和裁剪等常见任务。 

安装

在安装

ImageKit

之前,我们需要先安装

Pillow

,因为

ImageKit

是基于

Pillow

Django

做的封装的第三方库

pip install pillow

然后安装django-imagekit

pip install django-imagekit

完成上述步骤后,在

Django

项目的

settings.py

文件中的

INSTALLED_APPS

添加上:

\'imagekit\'

。 

使用方法

 

ImageSpecField

使用定义图像规范的最简单方法是在模型类上使用

ImageSpecField

from django.db import modelsfrom imagekit.models import ImageSpecFieldfrom imagekit.processors import ResizeToFill# 用来保存上传图片相关信息的模型class (models.Model):name = models.CharField(max_length = 50)# 原图avatar = models.ImageField(upload_to = \'test_pictures\')# 注意:ImageSpecField不会生成数据库中的表# 处理后的图片avatar_thumbnail = ImageSpecField(source="avatar",processors=[ResizeToFill(100, 50)], # 处理后的图像大小, 宽×高=100×50format=\'JPEG\',  # 处理后的图片格式options={\'quality\': 100} # 处理后的图片质量)profile = Profile.objects.all()[0]print profile.avatar_thumbnail.url    # > /media/CACHE/images/982d5af84cddddfd0fbf70892b4431e4.jpgprint profile.avatar_thumbnail.width  # > 100

ImageSpecFields

的工作方式与

Django

ImageFields

非常相似。区别在于,它们是由

ImageKit

根据您给出的说明自动生成的。在上面的示例中,

avatar_thumbnail

avatar

的大小调整版本,保存为质量为100的JPEG格式。 

ProcessedImageField

如果您不需要保留原始图像(上例中的image);当用户上传图像时,您只需要对其进行处理并保存结果。在这些情况下,您可以使用

ProcessedImageField

类:

from django.db import modelsfrom imagekit.processors import ResizeToFillfrom imagekit.models import ProcessedImageFieldclass (models.Model):avatar_thumbnail = ImageSpecField(source="avatar",processors=[ResizeToFill(100, 50)],format=\'JPEG\',options={\'quality\': 100})profile = Profile.objects.all()[0]print profile.avatar_thumbnail.url    # > /media/avatars/MY-avatar.jpgprint profile.avatar_thumbnail.width  # > 100

 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Django(71)图片处理器django-imagekit