# compressImg **Repository Path**: none/compressImg ## Basic Information - **Project Name**: compressImg - **Description**: 图片压缩库Picdiet - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-10-26 - **Last Updated**: 2022-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 摘要 ### 本项目使用js取至 [picdiet.com](https://www.picdiet.com/zh-cn) ### 此库并不会压缩png图片,如果需要处理png格式请自行处理 ### `设计初衷`由于库未开源-经过加密了的,在此在它外面加了一层壳子 # 压缩示例 ![avatar](001.png) # 代码使用 - [npm包](https://www.npmjs.com/package/web-compress-img) ``` npm i web-compress-img --save-dev ``` # 启动 ``` npm install npm run start ``` # 注解 ## 1.函数示例 1.loadImage 压缩图片 ``` import zipImg from "web-compress-img" /** * @description 压缩图片开始 * @param {file} file 图片资源 * @param {function} callback 处理后回调事件 * @param {number} proportion 处理质量 百分比 默认75% * @returns {object} 返回对象聚合 newFile 压缩过后的文件 oldFile 之前文件 zipFile 压缩后再zip压缩后的文件 * @author 一枚前端 */ zipImg.loadImage(file, (files) => { console.log(files); },75); ``` 2.getImageData 获取图片数据-blob ``` zipImg.getImageData(file).then(data => { console.log(data); }); ``` 3.getDataUrl 获取图片base64编码 ``` zipImg.getDataUrl(file).then(data => {//转码 console.log(data); }); ``` 4.bytesToSize 获取图片大小,返回示例:10kb 1M 1G ``` zipImg.bytesToSize(file.size); }); ``` ## 2.不支持es6或者es5语法中使用-使用webpack或者其他[工具](https://gitee.com/zbproject/gulp-build-all/tree/master)自行打包 ``` 将web-compress-img注册到全局-window上 ``` ## 3.其他 1.如需使用file方式上传代码 只需要在loadImage完成后处理,示例如下 ``` console.log("上传文件->" + files[0].name); console.log("上传前大小->" + zipImg.bytesToSize(files[0].size)); zipImg.loadImage(files[0], function (filesObj) {//自定义函数 var files_ = filesObj.newFile; console.log("压缩后大小->" + zipImg.bytesToSize(files_.size)); zipImg.getImageData(files_).then(function (data) { //data 为Uint8Array类型 var files_ = new File([data], files[0].name, { type: "image/jpeg" });//主要 files = [ files_ ]; console.log(files,"提交参数"); }); }); ```