Django-imagekit的使用详解


Posted in Python onJuly 06, 2020

ImageKit是一个用于处理图像的Django应用程序。需要一个缩略图吗?用户上传图片的黑白版本?ImageKit会为你制作。如果需要通过编程从另一个图像生成一个图像,则需要ImageKit。
ImageKit提供了一组图像处理器,用于调整大小和裁剪等常见任务,但您也可以创建自己的图像处理器。

1、安装

要在 Django 使用 ImageField 模块,必须先安装第三方库 Pillow:

pip install pillow
pip install django-imagekit

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

现在准备工作全部完成,可以在项目中使用 django-imagekit 来处理图片了。

2、简单例子

我们在 modles 中这样使用django-imagekit

from django.db import models
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill

class Profile(models.Model):
  name = models.CharField(max_length = 50)

  # 原图
  picture = models.ImageField(upload_to = 'test_pictures') 

  # 注意:ImageSpecField不会生成数据库中的表
  # 处理后的图片
  picture_90x90 = ImageSpecField(
    source="picture", 
    processors=[ResizeToFill(90, 90)], # 处理后的图像大小
    format='JPEG', # 处理后的图片格式
    options={'quality': 95} # 处理后的图片质量
    )

  def __str__(self):
    return self.name

图片上传后会根据我们的设定生成相应的处理后的图片。

3、前端显示

要在前端显示处理后的图片只需这样:

src="{{ profile.picture_90x90.url }}

附录:django imagekit处理图片

文档地址: https://django-imagekit.readthedocs.io/en/latest/

基本用法

from pilkit.processors import ResizeToFill
from imagekit.models import ProcessedImageField
image = ProcessedImageField(upload_to='movie/images',
              processors=[ResizeToFill(480, 326)],
              format='JPEG',
              options={'quality': 60}, verbose_name='展示图片')

总结

到此这篇关于Django-imagekit的使用的文章就介绍到这了,更多相关Django imagekit的使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
通过代码实例展示Python中列表生成式的用法
Mar 31 Python
python中装饰器级连的使用方法示例
Sep 29 Python
在python3.5中使用OpenCV的实例讲解
Apr 02 Python
WxPython建立批量录入框窗口
Feb 27 Python
利用python Selenium实现自动登陆京东签到领金币功能
Oct 31 Python
Python3 Click模块的使用方法详解
Feb 12 Python
Python基于httpx模块实现发送请求
Jul 07 Python
Python基于traceback模块获取异常信息
Jul 23 Python
flask开启多线程的具体方法
Aug 02 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
Python基础之tkinter图形化界面学习
Apr 29 Python
大数据分析用java还是Python
Jul 06 #Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 #Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 #Python
python如何调用java类
Jul 05 #Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 #Python
如何清空python的变量
Jul 05 #Python
增大python字体的方法步骤
Jul 05 #Python
You might like
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
浅谈js中的this问题
2017/08/31 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
Python数据操作方法封装类实例
2017/06/23 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
竞选学生会演讲稿
2014/04/25 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
民事答辩状格式范文
2015/05/21 职场文书
人民币使用说明书
2019/04/17 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL