compress-picture-js
Version:
43 lines (42 loc) • 1.3 kB
JavaScript
import { responseUtil } from '../../util/response/response.util.js';
import { CreateDirSyncFromFilename } from '../../util/file/file.util.js';
import { ExecCommandSync } from '../../util/cmd/cmd.util.js';
import { ICode } from '../../util/response/respone_enum.util.js';
import mozjpeg from 'mozjpeg';
// CompressJPG 压缩JPG
export function CompressJPG(options) {
let resp = responseUtil.DefaultIResponse();
// console.log("🚀", options);
// 检查输出文件夹
CreateDirSyncFromFilename(options['output']);
let commandArs = [
'-quality',
jpgCompressQuality(options['quality']),
'-outfile',
options['output'],
options['input'],
];
try {
ExecCommandSync(mozjpeg, commandArs);
}
catch (e) {
resp.code = ICode.FAILED;
resp.reason = ICode[ICode.FAILED];
let err = e;
if (err.message !== '') {
resp.message = err.message;
resp.metadata = err;
}
else {
resp.message = '压缩JPG/JPEG失败:' + JSON.stringify(options);
}
}
return resp;
}
// jpgCompressQuality jpg压缩质量
function jpgCompressQuality(quality) {
if (quality < 0 || quality > 100) {
return '100';
}
return quality.toString();
}