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

JS 图片压缩

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

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

Js调试技巧

开发人员工具、断点技巧、搜索技巧等 视频版本:【JavaScript 代码调试方法】How To Debug In Chrome -> link # 学会使用开发人员工具 ---- preserve...snippet script 、 override 重写覆盖脚本 (也可以用 fiddler 支持正则更智能)、 Ctrl键 切换智能提示… # 学会使用 console ---- console 不同日志级别...以上 3 种都是 16 进制) 0-9 A-F base64 A-Z a-z 0-9 + _ = # 快速定位(无混淆情况下) 使用魔法值搜索: 123456789、1732584193(md5...特征 加密过程:new 一个 rsa 对象 ->setpublickey(key,iv (模值))->encrypt # 其他技巧 ---- 巧用 JSON.stringify/parse 来提取 js...对象 扣 js 代码或补环境(DOM、BOM),扣代码则要善于导出变量( window.xxx = ... ) 学会识别统一格式代码,过滤掉无用格式要求固定代码 学会识别 webpack 打包代码

3K50

调试JS代码

记录下近期对JS代码调试过程 性能分析 启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用功能有: Performance....性能报告页面的 部分,可以通过点击色块查看其所在js代码文件,如 点击则会跳转到 功能栏,有了源文件就可以进行断点调试;这里注意部分js文件是压缩文件,建议手动修改程序替换成可读性更强原始代码文件...,方便调试 Console....查看程序打印输出,比如我想知道某个函数执行时间,可以在js代码中进行修改 当js代码执行之后,可以在console输出中看到foo执行时间 Network....[2,1,4,10…] 颜色数组 转换成RGB表示,js代码使用for循环进行操作,也就是线性复杂度,计算耗时随数据量增大而线性增大 通过debug观察发现颜色数组会有不少重复数值,而同样输入会导致相同输出

19K10

使用uglifyjs压缩js

在做web项目上线时,我们需要对js文件进行压缩,以减小文件体积,加快加载速度,提高响应时间。下面我来介绍一个js压缩工具:uglifyjs。...最简单使用方式: uglifyjs main.js -o main-min.js -c 下面是一些压缩时常用参数 一些常用参数列表 -o,--output 指定输出文件,默认情况下为命令行...可以在-c后边添加 一些具体参数来控制压缩特性,下文中会具体介绍。...--comments 用来控制注释代码 如果压缩时候想要保留版权信息,可以如下使用: uglifyjs main.js --comments -m -o main-min.js 当然,...完整代码如下: @echo off :: 设置压缩JS文件根目录,脚本会自动按树层次查找和压缩所有的JS SET JSFOLDER=C:\Users\Administrator\Desktop\formini

5.5K20

Fiddler远程调试js

使用Fiddler调试本地js   在我们前端开发日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭。...而利用Fiddler可以修改HTTP数据特性,我们就非常敏捷地基于生产环境修改并验证,确认后再发布。 假设我们发现这个页面有问题,需要修改所引用js文件()。...在这个js session上右键点击,选择“Save – Response –Response Body…”,将js文件内容保存到本地。记住存位置,下面我们会用到这个保存下来文件。...处理方式可以选择使用文件,也可以选择合适时间暂停数据流(*bpu、*bpafter),人工干预。通过以上几个步骤,我们演示了怎样将HTTP请求重定向到本地文件,进行web调试。...这种调试方式不需要发布到线上再验证,避免了修改不成功、对用户造成影响风险,而且不需要搭建复杂开发服务器等开发环境,非常适合快速web调试

9.9K30

详解 JS 压缩图片

插播一下,本文案例已整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。...转 化 关 系 在实际应用中有可能使用情境: 大多时候我们直接读取用户上传 File 对象,读写到画布(canvas)上,利用 Canvas API 进行压缩,完成压缩之后再转成 File(Blob...,压缩率不高,还有可能出现“不减反增”现象 一般,不建议将 png 格式图片压缩成自身格式,这样压缩率不理想,有时反而会造成自身质量变得更大。...有个折衷方案,我们可以设置一个阈值,如果 png 图片质量小于这个值,就还是压缩输出 png 格式,这样最差输出结果不至于质量太大, 在此基础上,如果压缩后图片大小 “不减反增”,我们就兜底处理输出源图片给用户...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~

12.6K31

使用Firefox轻松调试JS

Firefox调试JS功能真的很不错,推荐一下! 在页面上点击右键,再点击“查看元素”,如图: ? 就会弹出Firefox开发者界面,点击“调试器”,如图: ?...这里可以显示每一步变量值,同时如果出现错误在这里也会提示“exception”,如: ? 一步步调试代码 你可以一步步执行代码。这对代码调试非常有用。 ?...使用断点调试 断点调试可以终止代码执行,你可以通过指定代码范围来查看错误是不是在指定代码范围内。这对于 错误调试很有用。...FirefoxJS调试功能非常强大,感觉试一下吧! 点击调试器tab页,刷新要调试页面,调试器主窗口会出现要调试代码 ?...点击暂停按钮,点击后按钮状态改变,同时右边三个调试步骤变为可操作状态,调试步骤作用可参考IE浏览器javascript调试讲解。同时,在代码行上面打断点。

5.8K20

JS破解--反反调试

今天应小伙伴们意愿写一下过无限 debugger 两个案例(其实都很简单,只要掌握一两个操作点的话) 因为咱粉丝比较少,就直接进行网站点名了,手动狗头 有些案例弄过小伙伴,可能需要清除一下对应域名下...PS:不管是加载别的页面也好,还是刷新也罢,只要浏览器重新加载了存在 debugger 语句js,就会开始 debug,所以要先擦除debugger,再去下断点分析你想要内容 ?...案例二: 努比亚论坛:https://bbs.nubia.cn/ 因为这是一个 js 生成 cookie 案例,所以触发 debugger 机制不太一样。...此时在控制台重写目标函数 _0x4db1c,但是重写之后,继续执行的话,还是看不到cookie 生成规则 所以重写之后,不要轻举妄动,在关键位置打上断点(ps:这个案例是一个经典js生成 cookie...断在了我们预期位置,接下来就开始愉快分析吧。

4.5K20

IDEA中Debug调试VUE前端项目、调试JS

前言 有一个礼拜没发quarku+graalvm相关内容了,因为博主在忙一个新前端项目去了,从element-ui切换到antdv,也有很多新东西需要一边啃文档一边输出,程序出现bug自是在所难免...在java开发中,debug就是一个debug启动按钮解决事情,而在前端开发中,IDEA这个开发工具也提供了非常好用jsdebug工具,博主这个用法不是网上介绍那种需要安装插件才能用方式,免安装浏览器插件可以直接用...,我这里选择就是360极速浏览器 第二步、打断点、运行jsdubg项 给需要代码打上断点,运行刚刚第一步创建好jsdebg项,IDEA会帮你在新浏览器窗口里打开刚刚设置URL地址,现在你可以在这个新打开窗口里操作...,当遇到你打断点代码,IDEA断点就会激活,这个时候就可以愉快Debug起来了,效果如下图: 结语 IDEA这个前端调试工具非常好用,却没有得到很好普及,网上搜到那种方式大多是安装一个...IDEA浏览器插件配合使用,相比来说,博主发现这个调试工具简直太好用了,而且注意哦,此法不仅可以调试VUE项目,而是适合所有的前端项目

1.1K20

调试 node.js 程序

调试 node.js 程序 在程序开发中,如何快速查找定位问题是一项非常重要基本功。在实际开发过程中,或多或少都会遇到程序出现问题导致无法正常运行情况,因此,调试代码就变成了一项无法避免工作。...这里简单介绍下如何调试 node.js 程序。 使用 console.log Node 提供了全局 console 对象,该对象可以输出格式化字符串。...庆幸是,V8 引擎导出了一个支持 Node 调试接口。因此,可以使用 Node 内置调试调试程序。...Node 调试程序: node --inspect index.js 这样就会以调试模式启动 Node,可以看到调试提示信息如下: Debugger listening on ws://127.0.0.1...可以通过命令在程序第一行设置断点: node --inspect-brk index.js 调试器提示信息如下: Debugger listening on ws://127.0.0.1:9229/def735ed

2.9K20

python版js压缩工具

发现一个好用python版js压缩工具 Posted on 2012年09月18日 by 空华叔 · Leave a comment https://github.com/rspivak/...slimit 灰常好工具,压缩比高,代码兼容性好,可媲美主流压缩工具~ 做了下简单benchmark: #raw 256K jquery-1.8.1.js #download from jquery.com...-1.8.1.google.advanced.js 32K jquery-1.8.1.google.advanced.js.gz 92K jquery-1.8.1.google.simple.js....slimit.js.gz yui虽然最nb,拉开其他工具一大截,但是压出来已经不能用了,难道是我点击提交按钮方式不对??...实际使用时,我用环境是redhat5.x,python环境较为恶劣,slimit只兼容到python 2.7,于是单独做了一个”便携版本”,可以兼容到2.4,并且相关依赖也放到一起,下载即用:) https

6.1K20

加密JS代码反调试

JavaScript奇技淫巧:加密JS代码反调试 JS代码混淆加密,已被很多人使用,因为它真的很有用、很实用,可以用于保护代码、防护分析、复制、盗用,还可以用于小游戏过审、APP加固等方面。...混淆加密后JS代码,可能被他人分析,为了对抗分析调试,本文分享一种反调试技术。 功能效果 使函数名不可修改,修改则代码无法运行 技术原理 将JS代码用可逆算法进行加密。...在分析调试时,分析者经常会将无意义函数名改成有含义名字,使便于理解。 本文我们要做,就是禁止改名,如果修改函数名,函数就无法执行。...map(function(c,i,a){ return String.fromCharCode(c^random_key(key,i)); }).join(""); } var js_code...Date().getFullYear() + "," + _0xbc99c; console.log(_0x7d68de); ` function _0xag(){ var decode_js_code

5.5K50
领券