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

JS 图片压缩

前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS 的图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...base64 格式 base64 编码的图片通过 Canvas 转换压缩,这里会用到的 Canvas 的 drawImage 以及 toDataURL 这两个 Api,一个调节图片的分辨率的,一个是调节图片压缩质量并且输出的...总结 本文仅针对图片压缩介绍了一些思路,简单的使用场景可能如下介绍,当然也会引申出来更多的使用场景,这些还有待大家一起挖掘。

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

使用uglifyjs压缩js

在做的web项目上线时,我们需要对js文件进行压缩,以减小文件的体积,加快加载速度,提高响应时间。下面我来介绍一个js压缩工具:uglifyjs。...最简单的使用方式: uglifyjs main.js -o main-min.js -c 下面是一些压缩时常用的参数 一些常用的参数列表 -o,--output 指定输出文件,默认情况下为命令行...懒人有懒法,花了点功夫,折腾了一个批处理文件,以后,想要压缩JS,只要双击运行这个.bat文件就可以了!...完整代码如下: @echo off :: 设置压缩JS文件的根目录,脚本会自动按树层次查找和压缩所有的JS SET JSFOLDER=C:\Users\Administrator\Desktop\formini...然后双击就可以批量使用uglifyjs压缩JS文件啦! 注意:uglifyjs不支持ES6

5.5K20

webpack2 终极优化

webpack2增加了一些新特性也正式发布了一段时间,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。...可以通过这以下几点做到 压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader?...minimize参数可以开启压缩输出最小的css。css的压缩实际是是通过cssnano实现的。...优化 UglifyJsPlugin webpack --optimize-minimize 选项会开启 UglifyJsPlugin来压缩输出的js,但是默认的UglifyJsPlugin配置并没有把代码压缩到最小输出的...除了压缩文本代码外还可以: 用imagemin-webpack-plugin 压缩图片 用webpack-spritesmith 合并雪碧图 对于支持es6的js运行环境使用babili 以上优化点只需要在构建用于生产环境代码的时候才使用

55520

webpack2 终极优化

webpack2增加了一些新特性也正式发布了一段时间,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。...可以通过这以下几点做到 压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader?...minimize参数可以开启压缩输出最小的css。css的压缩实际是是通过cssnano实现的。...优化 UglifyJsPlugin webpack --optimize-minimize 选项会开启 UglifyJsPlugin来压缩输出的js,但是默认的UglifyJsPlugin配置并没有把代码压缩到最小输出的...除了压缩文本代码外还可以: 用imagemin-webpack-plugin 压缩图片 用webpack-spritesmith 合并雪碧图 对于支持es6的js运行环境使用babili 以上优化点只需要在构建用于生产环境代码的时候才使用

1.1K110

详解 JS 压缩图片

插播一下,本文案例已整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。...JavaScript 操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。 ?...如果你有足够的耐心多传几种类型图片就会发现还存在如下问题: 压缩输出图片寸尺固定为原始图片尺寸大小,而实际可能需要控制输出图片尺寸,同时达到尺寸也被压缩目的; png 格式图片同格式压缩压缩率不高,还有可能出现...,压缩率不高,还有可能出现“不减反增”现象 一般的,不建议将 png 格式图片压缩成自身格式,这样压缩率不理想,有时反而会造成自身质量变得更大。...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~

12.6K31

webpack中tree-shaking技术介绍

之前介绍过webpack3的新特性,里面提到webpack2支持了ES6的import和export,不需要将ES6的模块先转成CommonJS模块,然后再进行打包处理。...正基于此,webpack2引入了tree-shaking技术,能够在模块的层面上做到打包后的代码只包含被引用并被执行的模块,而不被引用或不被执行的模块被删除掉,以起到减包的效果。...webpack的tree-shaking案例 下面结合实际代码来解释webpack2是如何实现tree-shaking的,示例代码可到github进行下载。...示例代码结构如图:src中index.js为入口文件,module.js是测试的模块文件,dist中是产出的文件。 ?...bundle.js文件虽然对多余的模块进行了标记,但是并没有删除,这是因为webpack还没有执行压缩混淆操作,可以通过webpack -p命令对产出进行压缩处理,这时候会把打了unused harmony

90550

理论|webpack2 终极优化

webpack2增加了一些新特性也到了预发布阶段,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。...可以通过这以下几点做到 1、压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader?...minimize参数可以开启压缩输出最小的css。css的压缩实际是是通过cssnano实现的。...3、优化 UglifyJsPlugin webpack --optimize-minimize 选项会开启 UglifyJsPlugin来压缩输出的js,但是默认的UglifyJsPlugin配置并没有把代码压缩到最小输出的...除了压缩文本代码外还可以: 1)用imagemin-webpack-plugin 压缩图片 2)用webpack-spritesmith 合并雪碧图 3)对于支持es6的js运行环境使用babili 以上优化点只需要在构建用于生产环境代码的时候才使用

53810

webpack2 终极优化

webpack2增加了一些新特性也到了预发布阶段,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的文件尺寸和更好的开发体验。 优化输出 打包结果更小可以让网页打开速度更快以及简约宽带。...可以通过这以下几点做到 压缩css css-loader 在webpack2里默认是没有开启压缩的,最后生成的css文件里有很多空格和tab,通过配置 css-loader?...minimize参数可以开启压缩输出最小的css。css的压缩实际是是通过cssnano实现的。...优化 UglifyJsPlugin webpack --optimize-minimize 选项会开启 UglifyJsPlugin来压缩输出的js,但是默认的UglifyJsPlugin配置并没有把代码压缩到最小输出的...除了压缩文本代码外还可以: 用imagemin-webpack-plugin 压缩图片 用webpack-spritesmith 合并雪碧图 对于支持es6的js运行环境使用babili 以上优化点只需要在构建用于生产环境代码的时候才使用

52120

Vue.js前后端同构方案之准备篇:代码优化

/invoke.js'; console.log(uu.ddd); 改造好代码后,通过执行webpack命令,我们可以得到如下结果: 注意一下红框部分的内容,在非压缩模式下,实际上并不是完全意义上的...然后我们执行一下webpack的压缩命令: 压缩代码中只有「console.log(4)」,也就是aaa, bbb, ccc这三个被标记为「unused harmony export」的方法在压缩版本中移除了...2)webpack的打包非压缩的情况下会保留unused function,压缩版才会真正去掉。 3)尽量使用import * as uu from '....1、webpack.config.js,由于是webpack2,和webpack并不完全一样,这里需要修改兼容一下。...3、一定要升级最新的正式版的webpack2,beta版的webpack2有一些BUG会导致编译不过。 4、由于进行Babel编译估计比较慢,建议开发阶段不要开Babel编译。

6.4K20

谈谈webpack2的一些事

. */ }; 而在webpack2中,则有三种方式来灵活配置,可以针对不同的场景。...后缀扩展 在webpack2中,不需要默认写一个空字符串,如果没有配置这个选项,则默认的后缀名是['.js', '.json'],这样可以在需要用到import 'some.js'的时候直接写import...less-loader' 都自动添加了-loader后缀,在webpack2中不再自动添加,如果需要保持和webpack1相同的方式,可以在配置中添加一个属性,如下: module.exports =...4. plugins相关 4.1 UglifyJsPlugin 代码压缩插件 压缩插件中的warnings和sourceMap不再默认为true,如果要开启,可以这样配置 plugins : [...热替换更加简单 webpack2中提供了一种更简单的使用热替换功能的方法。当然如果要用node启动热替换功能,依然可以按照webpack1中的方式。

1.2K50
领券