+
80
-

nodejs如何批量压缩图片到指定大小?

nodejs如何批量压缩图片到指定大小?

网友回复

+
0
-
进网站( https://tinypng.com)后先点击 developer api ,这里提供几种方式安装,我们选择node.js 方式安装 :

npm install --save tinify

这里需要取得api_key,因为网站上有相关如何获取api这里就不介绍如果和获取api_key 新建一个tini的文件夹,里面新建tini.js,代码如下:
var fs = require("fs")   //node文件模块
var paths = require("path")  //文件路径

var root = paths.join(__dirname+'/daizhuanhuan')//daizhuanhuan文件夹放入你要压缩的图像

const tinify = require("tinify"); //获取tinify模块

tinify.key = "你的API_KEY"; //设置你的api_key


readDirSync(root)

function readDirSync(path){
	var pa = fs.readdirSync(path);
	pa.forEach(function(ele,index){    //遍历daizhuanhuan整个文件夹
		var info = fs.statSync(path+"/"+ele)	
		if(info.isDirectory()){

			console.log("dir: "+ele)
            readDirSync(path+"/"+ele);     
            if (!fs.existsSync("./zhuanhou/"+ele)) {  //在转换后的文件夹里新建一样的
                fs.mkdirSync("./zhuanhou/"+ele);
            }
		}else{

            var io = paths.resolve(path+"/"+ele, '..')
            console.log(io.replace("daizhuanhuan","zhuanhou")+"/"+ele)
            console.log("file: "+ele)
            console.log(path+"/"+ele)

            const source = tinify.fromFile(path+"/"+ele);     //遍历上传图像文件
            source.toFile(io.replace("daizhuanhuan","zhuanhou")+"/"+ele); //压缩后文件

		}	
	})
}

再在tini文件夹下新建daizhuanhuan文件夹放置你要压缩的图像文件,也可以将整个资源文件夹放入,但是资源文件里只能包含png或jpg文件,切记。再新建一个名zhuanhou文件夹,终端tini文件夹执行

node tini.js

这样会在zhuanhou文件夹下生成和daizhuanhuan后一模一样的资源文件夹路径
我知道答案,我要回答