下载插件
npm install images
或者
npm install --save images
当然也可以使用(用法差不多,不过这个是异步的)
npm install imagemin
用开发工具直接粘贴回车安装
或者
到项目目录下cmd粘贴安装也是一样的
同样会自动修改package.json,package-lock.json文件
使用实例
var images = require("images");
var fs = require('fs');
function importImg(){
var tempImg = "D:\\Eclipse\\11.jpg";
var saveImg = "D:\\Eclipse\\22.jpg";
var obj = images(tempImg).size();
images(tempImg).size(obj.width/2,obj.height/2).save(saveImg, {
quality : 50 //保存图片到文件,图片质量为50
});
var staSync = fs.statSync(saveImg).size;// 压缩后的图片大小
if((staSync+"").length > 6){// 存储后的图片超过1MB,再重新压缩(上传我限制图片大小10MB)
images(tempImg).size(obj.width/3,obj.height/3).save(saveImg, {
quality : 50
});
}
fs.exists(tempImg,function (exist) {
if(exist){
fs.unlink(tempImg, function(err) {
if (err) {
console.log("删除临时文件异常")
}
console.log("删除临时文件")
});
}else{
console.log("不存在")
}
})
//images.gc();// 回收处理图像内存
}
最关键的部分就是(上面我是获取了原图的宽高除2进行压缩图片,防止比例不正)
images("D://11.jpg").size(1000,1000).save("D://22.jpg", {
quality : 50 //保存图片到文件,图片质量为50
});
说明
获取临时图片宽高进行比例折半后压缩质量为50的图片,如果超过我规定的1MB则重新压缩比例更小的图片,前端页面获取的图片被我限制在10MB,所以我不做其他的压缩判断,压缩完成后下面删除临时文件
其他
获取宽高的也可以使用其他插件
(总之我用gm的时候size找不到,所以被迫找到images自带的宽高)
npm install --save gm
或者
npm install gm -d
获取方式
var gm = require('gm');
gm('img.png').size(function (err, size) {
if (!err)
console.log(size.width > size.height ? 'wider' : 'taller than you');
});
mg详情:https://blog.youkuaiyun.com/dreamer2020/article/details/51647885
images使用参考:
https://blog.youkuaiyun.com/baby97/article/details/50606050
或
https://blog.youkuaiyun.com/shiyangxu/article/details/82019183