zoukankan      html  css  js  c++  java
  • Django(71)图片处理器django-imagekit

    介绍

    ImageKit是用于处理图像的Django应用程序。如果需要从原图上生成一个长宽为50x50的图像,则需要ImageKit

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

    安装

    在安装ImageKit之前,我们需要先安装Pillow,因为ImageKit是基于PillowDjango做的封装的第三方库

    pip install pillow
    

    然后安装django-imagekit

    pip install django-imagekit
    

    完成上述步骤后,在 Django 项目的 settings.py 文件中的 INSTALLED_APPS 添加上: 'imagekit'
     

    使用方法

    ImageSpecField

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

    from django.db import models
    from imagekit.models import ImageSpecField
    from 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×50 
            format='JPEG',  # 处理后的图片格式
            options={'quality': 100} # 处理后的图片质量
            )
        profile = Profile.objects.all()[0]
        print profile.avatar_thumbnail.url    # > /media/CACHE/images/982d5af84cddddfd0fbf70892b4431e4.jpg
        print profile.avatar_thumbnail.width  # > 100
    

    ImageSpecFields的工作方式与DjangoImageFields非常相似。区别在于,它们是由ImageKit根据您给出的说明自动生成的。在上面的示例中,avatar_thumbnailavatar 的大小调整版本,保存为质量为100的JPEG格式。
     

    ProcessedImageField

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

    from django.db import models
    from imagekit.processors import ResizeToFill
    from imagekit.models import ProcessedImageField
    
    class (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.jpg
        print profile.avatar_thumbnail.width  # > 100
    
  • 相关阅读:
    [转]ASP.NET Core 中间件详解及项目实战
    [转]如何在ASP.NET Core中实现一个基础的身份认证
    [转]ASP.NET Core 之 Identity 入门(三)
    [转]ASP.NET Core 之 Identity 入门(二)
    [转]ASP.NET Core 之 Identity 入门(一)
    [转]用Middleware给ASP.NET Core Web API添加自己的授权验证
    [转]NET Core中实现一个Token base的身份认证
    [转]MVC过滤器
    [转]【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper
    [转]国家发展改革委关于印发促进中部地区崛起“十三五”规划的通知
  • 原文地址:https://www.cnblogs.com/jiakecong/p/15466015.html
Copyright © 2011-2022 走看看