首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS 图片压缩

前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...base64 格式 base64 编码的图片通过 Canvas 转换压缩,这里会用到的 Canvas 的 drawImage 以及 toDataURL 这两个 Api,一个调节图片的分辨率的,一个是调节图片压缩质量并且输出的...canvas 大小,也就是压缩后下载的图片大小 let imageWidth = image.width; //压缩图片的大小 let imageHeight

25.7K21
您找到你想要的搜索结果了吗?
是的
没有找到

Canvas 进阶(六)实现图片压缩功能

功能体验 先看demo:图片压缩 项目源码:github 效果如下: ?...实现功能 能够获取压缩后的 base64 图片 能够获取压缩后的图片节点,并能替换文档中的图片节点 能够获取压缩后的 canvas 进行二次绘制,并能替换文档中的 canvas 能过获取压缩后的 blob...文件 能够下载压缩后的图片 具体实现 前端实现压缩功能,从图片大小和质量两方面着手:缩小图片和降低图片质量 因此我们设计一个 imageCompress 类,传入一个 option, 其参数有: file...获取 canvas 和与页面 canvas 进行替换功能 我们在构建函数中已经将传入的图片加载并赋值给了 this....获取压缩后的图片base64 前一步我们已经能够获取 canvas,将 canvas 调用 canvas.toDataURL(this.options.mimeType, this.options.quality

1.2K20

详解 JS 压缩图片

所以本文将试图解决如下问题: 弄清 Image 对象、data URL、Canvas 和 File(Blob)之间的转化关系; 图片压缩关键技巧; 超大图片压缩黑屏问题。 ?...在熟悉以上各种图片转化方法的具体实现,将它们封装在一个公用对象 util 里,再结合压缩转化流程图,这里我们可以简单实现图片压缩了: 首先将上传图片转化成 Image 对象,再将写入到 Canvas...画布,最后由 Canvas 对象 API 对图片的大小和尺寸输出调整,实现压缩目的。...(image, 0, 0, canvas.width, canvas.height); return canvas; } png 格式图片同格式压缩压缩率不高,还有可能出现“不减反增”现象 一般的...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~

12.6K31

图片转换js (img对象,file对象,base64,canvas对象),以及图片压缩方式(转载)

大多时候我们需要将一个File对象压缩之后再变为File对象传入到远程图片服务器;有时候我们也需要将一个base64字符串压缩之后再变为base64字符串传入到远程数据库;有时候后它还有可能是一块canvas...画布,或者是一个Image对象,或者直接就是一个图片的url地址,我们需要将它们压缩上传到远程; 二、解决办法 如上图所示,七个方法,基本覆盖了JS中大部分文件类型的转换与压缩,其中: 1、 urltoImage...,表示图片压缩质量; fn 为回调方法,包含一个 Blob 对象的参数;代码如下: function canvasResizetoFile(canvas,quality,fn){ canvas.toBlob...字符串,其中 canvas 参数传入一个 Canvas 对象; quality 参数传入一个0-1的 number 类型,表示图片压缩质量;代码如下: methods.canvasResizetoDataURL...等比压缩图片的办法 function proDownImage(path,imgObj) { // 等比压缩图片工具 //var proMaxHeight = 185; var proMaxHeight

4.4K41

JS】928- 用 Canvas 编辑你的图片

" width="150" height="150"> // .js const canvas = document.getElementById('tutorial'); // ctx...实践 结合 canvas 技能,方案设计思路如下: 获取适配的图片 转换图片:按照图片 1:1 绘制画布 动态编辑:在画布上标记操作,可进行增删改 生成图片:画布转换为图片 1、获取并转换图片 drawImage...> function onLoad() { // 设置canvas图片大小 canvas.height = img.height; canvas.width = img.width..., x, y); drawRect(); }; 3、canvas图片 const dataURL = canvas.toDataURL('image/png') 以上是部分代码,来看看编辑效果...写在后面 希望通过本文给大家带来一种前端处理图片的思路,有兴趣的同学可以尝试一下 canvas 的其他功能,如:添加文字,编辑的撤回等等。

4.4K50

图片压缩神器TinyPNG压缩JPGPNG图片

在很多时候我们都会使用到PNG格式图片,而PNG图片由于其是一种无损的图片格式,它的文件会比较大,为了节约流量、提高加载速度,我们需要对欲上传的图片进行压缩。...兜兜转转一圈,我使用最多的图片压缩工具仍然是 TinyPNG,这个在线服务压缩率高、画质损失小,方便了我为文章配图。 ? TinyPNG检索密钥后,可以立即开始缩小图像。...官方客户端库可用于Ruby,PHP,Node.js,Python,Java和.NET,还可以使用WordPress插件压缩JPEG和PNG图像。...的图片压缩数量,你就说屌不屌吧。...TinyClient是一个超强压缩图片的小工具,压缩率可以达到50%以上,压缩质量接近无损。是一个基于Electron和Tinypng的图片压缩客户端工具。

5.7K20

小程序canvas生成海报图片压缩和失真问题解决

微信小程序实现canvas按照原图等比例不失真绘制海报图,防止模糊 我这里的场景是收款二维码+收款背景图。...绘制二维码 我这里绘制二维码使用的 wxapp-qrcode ,也可以使用weapp-qrcode,基本是一样的,今天主要讲解适配不同屏幕尺寸的canvas。...; // canvas画布为正方形 size.w = width size.h = height } catch (e) { console.log("获取设备信息失败" +...或者通过image的bindload方法动态的获取图片的高度和宽度,动态的设置图片的高度和宽度,是图片布局的高度和宽度和原始图片的高度和宽度相等。...图片等比例缩放工具 //Util.js class Util{ /*** * 按照显示图片的宽等比例缩放得到显示图片的高 * @params originalWidth 原始图片的宽

1.8K21

Nginx网络压缩 CSS压缩 图片压缩 JSON压缩

一、序言 使用Nginx作为web应用服务时,会代理如下常见文件:js、css、JSON、图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案。...二、网络压缩 此部分所有的压缩内容在浏览器端都会还原,特别需要指出的是图片图片在网络间是压缩状态传输的,到达浏览器后是会被还原的。...(一)Web资源 1、静态资源 前端项目中js/css文件越来越大,对其执行压缩处理越来越有必要。...图片压缩分为两类:一是等比压缩;二是固定宽高压缩。根据应用场景的不同也分为两类:一是固定参数;二是动态参数。 此部分图片压缩后到达浏览器不会被还原。...(一)等比压缩 使用关键词resize实现等比压缩,指定宽度或者高度即可在原尺寸图片的基础上等比率压缩图片。如果同时指定宽度和高度,只有一个参数生效。

5.2K41
领券