首页
学习
活动
专区
工具
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

npm - 组件发布

如何将自己写的组件发布到npm上 一、注册npm 1、npm官方地址:https://www.npmjs.com/ 2、注册-登录(注册完成需验证电子邮箱) image.png 二、初始化 1、...账号名,如果不加@XXX需要收费) version -- 版本号 (只能使用三位数的版本号,如:1.0.0) author -- 电子邮箱 (注册npm账号绑定的电子邮箱) 4、新建一个index.js...文件,为空即可 (可用于组件入口文件) image.png 三、登录发布 1、npm: 检查当前npm镜像 -- nrm ls 切换npm镜像为官方镜像 -- nrm use npm image.png...2、在cmd上登录npm账号: npm login 3、查看登录状态: npm whoami 4、发布: npm publish --access public image.png 四、遇到的问题...1、邮箱未验证,注册npm的时候没有看到邮件,进npm官网重新发送验证即可 2、第一次发布时,包名和其他人的重复,故没权限发布 3、npm publish会默认发布为私有包,但npm的私有包需要付费,需要添加参数进行发布

83020

cocoaPods 组件发布

一、创建仓库 仓库名为 组件名称(在GitHub平台创建一个新的工程项目 :名字为前提中的) 创建好后,先放置一边; 二、创建本地组件代码库 在本地创建一个存放组件的文件夹 打开终端 先cd到该文件夹下...//生成类的前缀 fixed:6 有可能没有 最终生成一个组件项目,会自动打开项目;在项目的目录下,其中有个Example的目录,打开就可以看到目录结构; 三、在组件项目中添加组件 在这个项目中,Classes...和Assets文件夹就是放组件文件的地方; ReplaceMe.m这个文件,是生成项目时,自动生成的,可以删除; 在Classes放入组件的文件,Assets组件放资源文件; 组件文件目录.png 四、...pod组件到项目中 cd Example,到Example目录,有Podfile文件的地方; 执行pod install; 执行完毕后,在工程目录下,可以看到组件已pod到工程中; 五、索引文件XXX....pod trunk push xxx.podspec --allow-warnings --skip-import-validation 附2: 删除已发布的库的某一版本 pod trunk delete

56610

详解 JS 压缩图片

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

12.6K31

发布组件到cocoaPods

一、创建仓库 仓库名为 组件名称(在GitHub平台创建一个新的工程项目 :名字为前提中的) image 创建好后,先放置一边; 二、创建本地组件代码库 在本地创建一个存放组件的文件夹 打开终端...//生成类的前缀 fixed:6 有可能没有 最终生成一个组件项目,会自动打开项目;在项目的目录下,其中有个Example的目录,打开就可以看到目录结构; 三、在组件项目中添加组件 在这个项目中,Classes...和Assets文件夹就是放组件文件的地方; ReplaceMe.m这个文件,是生成项目时,自动生成的,可以删除; 在Classes放入组件的文件,Assets组件放资源文件; 组件文件目录.png 四、...-------------------------------------------------------------------------------- 九、验证 将组建在cocoapods发布成功后...[GitHub名字]/MyThirdPartySDK.git - Versions: 0.1.0 [trunk repo] 查找失败,会出现红色一行字,提示找不到 找不到的原因: 1- 发布成功后

65230

js发布订阅

发布-订阅模式,看似陌生,其实不然。工作中经常会用到,例如 Node.js EventEmitter 中的 on 和 emit 方法;Vue 中的 on 和 emit 方法。...他们都使用了发布-订阅模式,让开发变得更加高效方便。 一、 什么是发布-订阅模式 1....上面一个看似简单的操作,其实是一个典型的发布订阅模式,公众号属于发布者,用户属于订阅者;用户将订阅公众号的事件注册到调度中心,公众号作为发布者,当有新文章发布时,公众号发布该事件到调度中心,调度中心会及时发消息告知用户...二、 如何实现发布-订阅模式? 1....然而,在发布订阅模式中,发布者和订阅者不知道对方的存在。它们只有通过消息代理进行通信。 在发布订阅模式中,组件是松散耦合的,正好和观察者模式相反。

1.4K20

Vue.js组件组件间通信

目录: 组件的种类:vue-router产生的每个页面、基础组件、业务组件 Vue.js组件的三个API:prop、event、slot Vue.js组件的通信方式: ref:给元素或组件注册引用信息;...Vue.js组件的三个API:prop、event、slot props props定义了这个组件有哪些可配置的属性,props最好用对象的写法,这样可以针对每个属性设置类型、默认值或自定义校验属性的值...Vue.js组件的通信(基本) Vue内置的通信手段一般有两种 ref:给元素或组件注册引用信息; parent/children:访问父 / 子实例。...Vue.js组件的通信(其他) 一、provide/inject(主要解决子组件获取上级组件的状态,主动提供与依赖注入的关系) Vue.js 2.2.0版本后新增的API。.../mixins/emitter.js' export default { mixins: [ Emitter ], methods: { handleDispatch () {

10.1K10
领券