Django 实现前端图片压缩功能的方法
思路:
<img alt="" src="/img/图片真实地址" ></img>
上面是一个典型的HTML中的图片,在django中,src对应的path会经过url进行过滤处理,所以可以通过写view过滤器的方式来实现图片压缩,代码如下
url
url(r'^img/(?P<path>(.+))/$',img),
view
def img(request,path): im=Image.open(settings.STATIC_ROOT+path) x,y=im.size im=im.resize((int(x/1.5),int(y/1.5)),Image.ANTIALIAS) response = HttpResponse(mimetype="image/png") #将PIL的image对象写入response中,通过response返回 im.save(response, "PNG") return response
结论:通过类似于filter的方法可以实现图片压缩,且下一个请求该图片时,会直接调用缓存,并不会再次进行图片压缩。
注:对性能的影响会在验证完成后上传
以上这篇Django 实现前端图片压缩功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
django 使用 PIL 压缩图片的例子
在最近做项目时,发现服务器上的图片比较大,数据传输时会消耗很多流量,体验非常不好.为了缓解这一现象,决定使用gzip压缩数据流,但是发现gzip对于json数据的压缩效果很好,但对于图片的压缩效果很差.无奈,只能写一段代码,将服务器上的图片挨个压缩一下. 我的服务器上的程序,是用django写的,数据库为sqlite,图片文件存储在media目录下. 先看models.py,只有一个ImageField类型的变量picture,也就是一会压缩图片需要用到的变量. class CrossPictu
-
Django 使用easy_thumbnails压缩上传的图片方法
easy_thumbnails:A powerful, yet easy to implement thumbnailing application for Django 1.4+ 安装 pip install easy_thumbanils 在你的项目中配置 setting.py INSTALLED_APPS中添加 'easy_thumbanils' 如果Django1.7及以上,运行python manage.py migrate easy_thumbnails 否则,运行python ma
-
PIL对上传到Django的图片进行处理并保存的实例
1. 介绍 上传的图片文件:如 pic = request.FILES["picture"] # pic是 <class 'django.core.files.uploadedfile.InMemoryUploadedFile'> 类型的数据 # 而pillow的Image.open("./xxx.jpg") 则是: <class 'PIL.JpegImagePlugin.JpegImageFile'> 类型的数据 # 问题是如何把InMem
-
Django 实现前端图片压缩功能的方法
思路: <img alt="" src="/img/图片真实地址" ></img> 上面是一个典型的HTML中的图片,在django中,src对应的path会经过url进行过滤处理,所以可以通过写view过滤器的方式来实现图片压缩,代码如下 url url(r'^img/(?P<path>(.+))/$',img), view def img(request,path): im=Image.open(settings.STATIC
-
移动前端图片压缩上传的实例
摘要:之前在做一个小游戏平台项目,有个"用户中心"模块,就涉及到了头像上传的功能.在做移动端图片上传的时候,传的都是手机本地图片,而本地图片一般都相对比较大,拿现在的智能手机来说,平时拍很多图片都是两三兆的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上传显然不是一个好办法.所以上传之前进行压缩处理是必要的,在网上找了很多资料之后,尝试了很多方法,遇到了很多坑,比如安卓能够成功压缩上传图片,在ios上却上传不了,折腾了很久才发现ios的坑.一下这种已经进过实践证
-
Js利用Canvas实现图片压缩功能
最近做的APP项目涉及到手机拍照上传图片,因为手机拍照的图片通常都比较大,所以上传的时候就会很慢.为此,需要对图片进行压缩处理来优化上传功能.以下是具体实现: /* * 图片压缩 * img 原始图片 * width 压缩后的宽度 * height 压缩后的高度 * ratio 压缩比率 */ function compress(img, width, height, ratio) { var canvas, ctx, img64; canvas = document.createElement
-
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
第一个项目终于上线了,是一个叫亲青筹的公益众筹平台,微信端,电脑端还有后台界面大部分都是我完成的,几个月过来,感觉收获了很多,觉得要总结一下. 首先想到的是图片上传的问题.在通常表单数据都是ajax上传的情况下,为了上传图片而去使用form表单感觉很蠢.然后那时候也没有想到用jquery form插件. 后台的同事给的方案是用iframe里写一个form表单,然后上传图片之后自动提交表单,他将图片在服务器上的地址以跳转页url的一部分,我再来截取的方式. 方案一:iframe+form表单 <f
-
django中的图片验证码功能
python的验证码库(captcha) 将验证码做成这样: 是不是和各大网页的图片源地址是一样,话不多说,让我们看代码: 我是用django和python中的captcha库做成 的 创建一个captcha_image.py: from captcha.image import ImageCaptcha import random class Captcha_Get(): def __init__(self, CHAR_SET = ['0', '1', '2', '3', '4', '5',
-
Vue实现剪切板图片压缩功能
监听剪切板粘贴事件,读取剪切板中的图片文件,转成base64通过img标签显示出来,此时可能会存在剪切板中图片过大,产生上传速度慢问题,接下来就跟大家分享下如何将base64图片进行压缩.先跟大家展示下最终实现的效果: 实现思路 监听剪切板粘贴事件 从事件回调中获取clipboardData中的image对象声明一个变量接收该对象 使用reader.readAsDataURL方法加载clipboardData中的image对象 在reader.onload回调中获取图片base64码 创建Ima
-
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
本文实例讲述了php基于ob_start('ob_gzhandler')实现网页压缩功能的方法.分享给大家供大家参考,具体如下: PHP生成网页后传送给浏览器显示 ,页面的打开速度除了与用户的网速有关,往往也跟页面的大小有很关系,我们可以从网 页大小着手,以提高网页的响应速度. 下面的代码是一个压缩网页的例子,我们利用ob_gzip函数,使用ob_start将输出内容压缩后放到"缓冲区"后再输出 . PHP代码 //启用压缩 if(function_exists('ob_gzip'))
-
Django接受前端数据的几种方法总结
背景 测试工具箱写到一半,今天遇到了一个前后端数据交互的问题,就一起做一下整理. 环境 -------------------------------------------------------- 版本相关 操作系统:Mac OS X EI Caption Python版本:2.7 IDE:PyCharm Django: 1.8.2 --------------------------------------------------------- 注: 我测试的是Get方法,POST方法也同
-
Android开发之图片旋转功能实现方法【基于Matrix】
本文实例讲述了Android开发之图片旋转功能实现方法.分享给大家供大家参考,具体如下: 在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配.Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作.Matrix没有机构体,它必须初始化,然后通过reset方法和set方法来实现. 首先介绍一下矩阵运算.加法和减法就不用说了,太简单了,对应位相加就好.图像处理,主要用到的是乘法 .下面是一个乘法的公式
-
Python基于PyGraphics包实现图片截取功能的方法
本文实例讲述了Python基于PyGraphics包实现图片截取功能的方法.分享给大家供大家参考,具体如下: 先安安装PyGraphics包 (python import media模块) 有一段代码要import media,打开python自带的IDLE,输入: >>>import media 就会提示没有media这个模块! 原来media模块不是系统的标准模块,需要安装第三方软件后才能用.这个库是在PyGraphics里,不过PyGraphics依赖一些别的库.可以这样安装(可参
随机推荐
- PHP实现找出数组中出现次数超过数组长度一半的数字算法示例
- AngularJS $injector 依赖注入详解
- Python编程中归并排序算法的实现步骤详解
- JQuery为用户控件(ASCX)赋值与接口的应用
- thinkphp3.2点击刷新生成验证码
- Web表单提交之disabled问题js解决方法
- 基于C#实现Windows服务状态启动和停止服务的方法
- Android自定义控件实现UC浏览器语音搜索效果
- JavaScript通过HTML的class来获取HTML元素的方法总结
- IP地址输入框
- Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
- JQuery操作元素的css样式
- MYSQL中获取得最后一条记录的语句
- 基于jQuery实现的文字按钮表单特效整理
- 分析Node.js connect ECONNREFUSED错误
- .NET中保证线程安全的高级方法Interlocked类使用介绍
- 浅谈hibernate中多表映射关系配置
- 网络安全防范体系及设计原则
- Python给你的头像加上圣诞帽
- vue自定义指令之面板拖拽的实现