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

JS 图片压缩

前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS 的图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...base64 格式 base64 编码的图片通过 Canvas 转换压缩,这里会用到的 Canvas 的 drawImage 以及 toDataURL 这两个 Api,一个调节图片的分辨率的,一个是调节图片压缩质量并且输出的...,后续会有详细介绍 转换后的图片生成对应的新图片,然后输出 优缺点介绍 不过 Canvas 压缩的方式也有着自己的优缺点: 优点:实现简单,参数可以配置化,自定义图片的尺寸,指定区域裁剪等等。

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

    前端图片压缩及上传

    要求用户上传的图片之前压缩图片很影响用户体验,所以就增加了在前端进行图片压缩的需求。...压缩方案 前端图片压缩的主要思路就是将图片绘制到canvas中,然后通过canvas的toDataURL方法来控制图片的质量,对图片进行压缩,另一方面是对图片进行宽高等比缩小来达到图片压缩的效果,下面来看一下代码示例...调用方法时填入图片允许的最大宽度或者是最大的高度,进行等比绘制到canvas中,然后通过toDataURL来转换成base64格式返回,此时的图片就是压缩过后的图片。...创建image对象 上面的示例说了图片压缩的过程,其中有一个参数是image对象,那么这个image对象是如何来的呢。...如此通过将base64编码图片保存为图片就做完了。 由于压缩采用的是canvas,获取文件等是通过FileReader 对象及Bolb对象,故此方法目前的兼容性最低为IE10,还请酌情使用。

    2.9K20

    详解 JS 压缩图片

    作者 | wuwhs https://segmentfault.com/a/1190000023486410 公司的移动端业务需要在用户上传图片是由前端压缩图片大小,再上传到服务器,这样可以减少移动端上行流量...插播一下,本文案例已整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。...JavaScript 操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。 ?...如果你有足够的耐心多传几种类型图片就会发现还存在如下问题: 压缩输出图片寸尺固定为原始图片尺寸大小,而实际可能需要控制输出图片尺寸,同时达到尺寸也被压缩目的; png 格式图片同格式压缩,压缩率不高,还有可能出现...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~

    12.7K31

    前端实现图片压缩干货分享

    前端实现图片压缩方案总结 前文提要 在Web开发中,图片压缩是一个常见且重要的需求。随着高清图片和多媒体内容的普及,如何在保证图片质量的同时减少其文件大小,对于提升网页加载速度、优化用户体验至关重要。...前端作为用户与服务器之间的桥梁,实现图片压缩的功能可以显著减轻服务器的负担,加快页面渲染速度。本文将探讨前端实现图片压缩的几种方法和技术。 1....使用HTML5的元素 HTML5的元素为前端图片处理提供了强大的能力。...尽管GIF图片本身可以具有压缩特性,但在前端和后端进行压缩处理时,存在几个关键考虑因素,这些因素可能导致在前端直接压缩GIF不如在后端处理更为有效或合理。...性能考虑:对于大图片或高频率的图片处理,前端压缩可能会占用较多CPU资源,影响页面性能。

    15010

    html5前端图片压缩

    如今手机像素越来越高,造成拍出来的照片越来越大,随便拍一张就好几兆,于是乎就有了一种需求就是压缩图片,在之前压缩图片的功能是在后台操作的,之后前端亦可以进行图片的压缩功能。...前端进行图片压缩的原理很简单,就是利用canvas来进行压缩,js将file框内的图片文件读取之后,按照比例绘制到canvas上,然后将canvas保存成图片即可实现了压缩功能。...,调用方法时填入图片允许的最大宽度或者是最大的高度 //如果最大宽度为0 则按照最大高度固定,宽度自适应的方式来实现 //如果是最大高度为0,则按照最大的宽度来实现...ctx.drawImage(img,0,0, width, height); return canvas.toDataURL("image/jpeg", 0.7);//这里的0.7值的是图片的质量...base64 $("#myImage").attr("src",thumb); } } 至此,图片的压缩功能已经完全实现了

    3.6K50

    前端:Canvas进行简单图片压缩算法

    图片压缩算法 通过canvasAPI进行在Web端上传的时候进行图片压缩。...压缩图片第一步将用户上传的图片(file)转为base64格式-new FileReader() -> ReaderAsDataUrl()异步读取 -> load事件读取完成获取base64 计算压缩图片宽高...压缩对宽度和高度进行压缩 naturalWidth/naturalHeihgt HTML5属性获得源生图片高度宽度 创建Canvas标签赋值压缩后的宽高 隐藏使用visibility-hidden.../* 1.首先拿到了base64的图片字符串 2.创建一个image对象,获得原始图片的宽度和高度 3.对原始图片的宽度和高度进行压缩达到符合条件...(第一次压缩-从尺寸压缩) 4.调用canvasAPI进行绘制新的图片 5.绘制成功之后调用canvasAPI进行绘制(canvasAPI支持压缩-二次压缩-从质量压缩)

    1.8K10

    前端图片压缩方案及代码实现

    为什么要进行图片压缩? 随着互联网的发展,图片在各种网站和应用中铺天盖地,运营人员在后台管理系统中上传图片时常常忽略的图片的体积大小,随之产生的带宽和服务器容量也大大增加,图片压缩的需求随之产生。...常见的压缩图片的方案有: 1. 将图片压缩后再上传; 2. 利用图床(图片服务器)压缩图片; 虽然图片压缩过后体积会小一些,但是为了加载的更快,常常还会采用以下一些配套加载方案。 1. ...前端图片压缩方案 前端实现图片压缩的基本思路为:在上传图片时,将file转换成image对象, 然后再利用canvas及其 api 将图片压缩成指定体积。 3. ...前端图片压缩方案代码实现 首先将file转换成image对象,这里我们用到了FileReader这个API。...: /** * @param img 被压缩的img对象 * @param type 压缩后转换的文件类型 * @param mx 触发压缩的图片最大宽度限制 *

    1.3K20

    开箱即用的前端图片压缩方案

    大厂技术 坚持周更 精选好文 前端实现图片压缩的背景 我们都知道在“寸土寸金”的互联网时代, 速度是第一竞争力, 虽然我们的5G发展已经摇摇领先, 但是也经不住用户在一个网页里传很多“巨无霸”图片...那么作为技术人, 当然也有一堆的解决方案, 比如: 压缩图片再上传 将图片上传到图床, 利用图床压缩能力和CDN节点就近分发 图片流式加载 图片懒加载/ 预加载 当然聪明的小伙伴也会将上面的方案组合,...今天不会和大家把所有方案都介绍一遍, 因为网上也有很多实践, 接下来会从前端技术提升的角度, 分享一下如何用原生 javascript, 实现从图片上传到图片自定义压缩的完整方案....实现图片压缩的方案 前端实现图片压缩无非就是在用户上传图片文件后, 将file转换成image对象, 然后再利用canvas 及其 api 将图片压缩成指定体积...., 接下来我们看看核心的图片压缩源码: /** * 压缩图片 * @param img 被压缩的img对象 * @param type 压缩后转换的文件类型 * @param mx 触发压缩的图片最大宽度限制

    1.3K22

    PNG图片如何压缩,4款图片压缩神器你值得拥有

    ,那么PNG图片如何压缩?...这是很多人比较关心的话题,这不今天就来为大家介绍5款图片压缩神器哦,让你轻松搞定图片压缩。...1、迅捷压缩软件 这是一款智能的图片压缩软件,但不仅仅是对图片压缩,还可以完成PDF压缩,及视频压缩,能批量压缩,帮你减轻工作量。...、webp格式 压缩成功后会显示原始图片大小及压缩后图片大小对比,可以点击下载图标对图片进行单个下载,如果图片较多,可以点击文字批量下载打包下载ZIP按钮,进行全部下载,会将所有图片生成一个ZIP压缩包...▼▼ ①一次性可批量压缩最多20张不超过5M的JPG或者PNG图片 ②压缩后的图片会变成PNG格式 ③数量超过20张和大小超过5M的需要收费 ④图片上传的同时,就会自动进行压缩处理,需要注意的是压缩后的图片会变成

    1.4K20

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

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

    5.9K20

    这个图片压缩神器,直接可以在前端用

    大家好,我是「前端实验室」爱分享的了不起~ 想必大家都用过图片压缩工具吧!...对于前端来说这图片压缩是必不可少的,今天就给大家介绍一个js工具库,让前端也能实现图片压缩~ js-image-compressor js-image-compressor 是一个实现轻量级图片压缩的...javascript 库,压缩后仅有 5kb,在前端页面即可实现对图片的压缩。...安装 npm安装 npm install js-image-compressor --save-dev 使用 简单配置 import ImageCompressor from 'js-image-compressor...输出的压缩图片符合以下特征: 默认按照 0.8 压缩率配置; 输出图片宽/高维持源图片宽/高; 一般的,输出图片格式保持源图片格式; 当 png 图片的 size 大于 2m 时,默认转化成 jpeg

    45710

    如何使用深度学习进行图片压缩?

    那么如何用深度学习技术来设计压缩算法呢?这篇文章将简单的来和大家说一说。 深度学习图片压缩框架和基本概念介绍 ? 图1....基于自编码网络的图像压缩 如图1 所示,一个典型的自编码图片压缩框架包括编码器、量化、反量化、解码器、码字估计、熵编码和率-失真优化等几个模块。...(1) 对公式(1)进行分析,其中与输入图片有关,由网络结构来决定,而R是由量化、编码特征分布和熵编码决定。 压缩特征经过反熵编码、反量化和解码器后就能得到解码图片。...技术难点与壁垒:在于如何以变分自编码网络为基础,解决如何优化自编码网络结构、如何对量化和先验建模进行联合优化的问题,提高图像压缩的性能和降低复杂度,提升实用性是难点。...从图片压缩角度来讲,基于深度学习的技术最大的优点是可以根据不同的应用进行针对性的设计和训练,可针对性的对主观或客观指标进行训练。

    1.5K30

    【Web技术】907- 前端图片最优化压缩方案

    前言 上传图片/视频/文件是我们经常会遇到的问题,但是一旦图片过大就会导致不好的操作体验。图片上传是前端中常见的的业务场景。无论是前台还是后台,适当的对图片进行压缩处理, 可以显著的提升用户体验。...toDataURL(type,quality)quality默认0.92看看压缩结果如何 图片让他们使用默认值0.92,结果都比原图大 所以说默认值得到的图片往往比原图大 下面看看当quality为多少时对图片的压缩效率可以最大化 压缩效率最大化,即:在不影响图片质量的情况下最大化压缩...尝试了一系列的图片之后我发现 当quality在0.2~0.5之间,图片质量变化并不大,quality的值越小,压缩效率越可观(也就是在0.2左右时,压缩图片可以最大化,同时并不对图片质量造成太大影响...当quality在0.2~0.5之间,图片质量变化并不大,quality的值越小,压缩效率越可观(也就是在0.2左右时,压缩图片可以最大化,同时并不对图片质量造成太大影响) 附录 /** * 压缩方法

    97610

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

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

    5.3K41
    领券