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

JS 图片压缩

前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS 的图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...缺点:只有 jpeg 、webp 支持原图尺寸下图片质量的调整来达到压缩图片的效果,其他图片格式,仅能通过调节尺寸来实现 代码实现 <div class="container"...,不喜欢用 Vue 的也可以把代码稍微调整一下,下面开始具体分解一下代码的实现思路 Input 上传 File 处理 将 File 对象通过 FileReader 的 readAsDataURL 方法转换为

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

    JS代码怎么被执行的

    JS代码怎么被执行的 我们看到的JS都是在浏览器中或者在Node环境中运行的对吧,那不论是浏览器还是Node,负责编译并且解释执行JS代码的都是一个叫做V8的东西,所以这个问题其实就是V8引擎是怎么去运行...JavaScript的,而js和C/C++/Go/Rust这类静态编译的语言不同,这些静态编译的语言通过编译器把代码变成机器码,然后在机器上运行,js呢在编译后会生成字节码,然后在v8的虚拟机上运行字节码...字节码是介于AST和机器码的一种代码,需要通过解释器转换成机器码后执行。...在执行字节码的过程中,如果发现有热点代码(HotSpot),比如一段代码被重复执行多次,这种就称为热点代码,那么后台的编译器 TurboFan 就会把该段热点的字节码编译为高效的机器码,然后当再次执行这段被优化的代码时...,只需要执行编译后的机器码就可以了,这样就大大提升了代码的执行效率。

    3.1K40

    使用uglifyjs压缩js

    在做的web项目上线时,我们需要对js文件进行压缩,以减小文件的体积,加快加载速度,提高响应时间。下面我来介绍一个js压缩工具:uglifyjs。...-b,--beautify 美化代码格式的参数 -m,--mangle 改变变量名称(ex:在一些例如YUI Compressor压缩完的代码后你可以看到)a,b,c,d,e,f之类的变量...--comments 用来控制注释的代码的 如果压缩的时候想要保留版权信息,可以如下使用: uglifyjs main.js --comments -m -o main-min.js 当然,...uglifyjs压缩批处理 我们不可能每次都打开cmd去键入压缩执行代码,容易写错不说(如上面那个结果图),还耗时,想想都会让人疯掉。...完整代码如下: @echo off :: 设置压缩JS文件的根目录,脚本会自动按树层次查找和压缩所有的JS SET JSFOLDER=C:\Users\Administrator\Desktop\formini

    5.7K20

    JS代码超过1000行,该怎么维护?

    1000行JS代码,听起来挺多的,但实际上真不算什么,随便一个功能完备、代码健壮的JS应用或是模块,很轻松的就写出1000多行,看这里,我以前写的一个tabel插件,带有CRUD功能、展开、加载、上传、...预览功能的东西,当时为了赶时间没怎么细写,只是实现了功能,就达到700多行, ?...所以,现代的大型web应用,1000行以上的JS代码我觉得就是“起步价”而已。那么这种大型应用的开发,我们必须对JS的可维护性有一个清醒的认识。 不要觉得,“我写的代码,我还维护不了么”?很有可能。...js代码我个人主观觉得,啰嗦一点会更好些。 然后对于数据的加载和使用,要有一定的适应性,不要搞的json的结构一变,你的js整个不能运行。自己封装一个分析json的公共方法。...还是怎么样,至少得有个章程。一般来讲变量名用名字,名称嘛;然后函数名用动词,函数是做事的呀。不必担心什么变量名太长会增加体积,现在js都是被压缩过的。 还有一个方面就是声明变量时的变量类型。

    2K70

    IIS7下js文件启用Gzip后却不压缩怎么解决?

    IIS7已经启用静态文件压缩(Gzip)但是死活不压缩,查找后发现是II7下MIME类型设置问题   将.js的MIME类型设置为application/javascript   再查看页面,已经启用了...不过,几个天后又发现有的js文件被压缩,有的却没有   查找原因发现是引用js文件是没有设置type   加上type=”text/javascript”类型后问题解决。...IIS7中启用JS压缩的方法   先打开IIS管理,选择我要设置的站点,然后在右边的功能区找到MIME TYPES看看里面是否有.JS的选项,如果没有可以手功加上   有的话把.js的值设置成:application.../x-javascript记住不能少并x-有的网友介绍是application/javascript   偶在WIN2008+IIS7下试过,如果不加x-也是不会压缩的。   ...当然最好在上传JS前对JS进行一次压缩这样效果会更好啦。 可以到网上找找TBCompressor工具,这个工具压缩不错   只不过需要你的JS写的标准,不然会出错,分析不了你的JS语法就压缩不了

    1.5K30

    详解 JS 压缩图片

    插播一下,本文案例已整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。...JavaScript 操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。 ?...但只要有代码在引用对象 URL,内存就不会释放。要手工释放内存,可以把对象 URL 传给 window.revokeObjectURL()。...options.convertSize && options.mimeType === 'image/png') { options.mimeType = 'image/jpeg'; } // 省略一些代码...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~

    12.7K31

    JavaScript代码压缩细节

    前言 对于Javascript来说,提高网络下载的性能最直接的方法就是把JS文件体积减小。...为了方便理解和对比,本文会给出压缩前后代码作为参考,但压缩后的代码仍会换行,变量名字不做混淆处理,同时一个压缩规则的例子会尽量不混其它压缩策略进去。 1....的压缩 对a>=b取非可以得到a<b,对a&&b取非可以得到!a||!b。如果转换后的结果能得到更短的代码,那就将这个取非的表达式换成转换后的表达式。 压缩前 !(a>=b) !!!a 12 !...  function B(){ }   return false;   var a = 1; } 规则6.4 合并块末尾的return语句及其前边的多条表达式语句 其实这条规则看起来并不会使最后生成的代码缩小...C){   D(); } 规则7.3 尝试反转if/else分支,看看生成代码是否更短 尝试对if条件取非,如果能得到更短的代码,那就反转if/else分支。 压缩前 if (!

    1.2K20

    怎么防止同事用Evil.js代码投毒

    最近Evil.js被讨论的很多,项目介绍如下项目被发布到npm上后,引起了激烈的讨论,最终因为安全问题被npm官方移除,代码也闭源了作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式,代码里下毒会被...,比如evil.js中,给JSON.stringify下毒了,把里面的I换成了l ,每周日prmise的then方法有10%的概率不触发,只有周日能触发着实有点损了, 并且npm的报名就叫lodash-utils...ShadowRealm APITC39有一个新的ShadowRealm api,已经stage3了,可以手动创建一个隔离的js运行环境,被认为是下一代微前端的利器,不过现在兼容性还不太好,代码看起来有一丢丢像.../anti-evil.js">function isNative(fn){ return fn.toString() === `function ${fn.name}() {

    3.1K20
    领券