问题
我一直在尝试转换一系列图像,PNG到JPG,我似乎遇到了输出媒体输出到预期路径和代码主脚本的路径的问题:
使用的模块:npm media-converter
代码:
/**
* Reads PNG File(s) then converts to JPG
*/
function ArrayConvertPNGtoJPG() {
// PNG to JPG Spinner
const pngTOjpgSpinner = ora("WARNING: Attempting Conversion of PNG to JPG").start();
const directoryPath = path.join(__dirname, './Input');
setTimeout(() => {
fs.readdir(directoryPath, function (err, files) {
//handling error
if (err) {
return console.log('Unable to scan directory: ' + err);
}
for (let i = 0; i < files.length; i++) {
const input = "./Input/" + files[i];
const output = `./Converted/${files[i].slice(0, -4)}.jpg`
convert(input, output, (err) => {
if (!err){
pngTOjpgSpinner.succeed("SUCCESS: ".green + input.green + " Converted to ".green + output.green);
} else {
pngTOjpgSpinner.fail("ERROR: Unable to convert file: " + input + " to a JPG");
}
});
}
});
}, 2000);
}结果:

如果你能帮我找到一个解决方案,那将是有帮助的。
发布于 2021-05-05 19:23:44
这可能是媒体转换器的一个有意为之的特性。
首先,is将尝试将.png转换为.jpg,并将其输出到/Converted文件夹中。
其次,它将尝试使用imagemin包压缩生成的.jpg。
在node_modules/media-converter/converter.js的代码中,您将找到以下代码行:
destination: './'这意味着,压缩后的/Converted/my-image.jpg文件的目标将是安装的根文件夹。这就是为什么您在/Converted/my-image.jpg中看到已转换但未压缩的文件,以及在安装的根目录中看到已转换和压缩的文件的原因。
你对此无能为力,除非你等待插件更新(我看到你已经提交了一个问题,所以它可能会在未来的某个时候得到解决)。
或者,您可以摆弄插件代码并更改压缩版本的目标位置。(请注意,它不能是相同的文件夹./Converted/,它一定是其他文件夹或插件错误。)
destination: './Converted/Compressed/',(尽管如此,您仍然有两个文件。您可以编写一些代码来删除/Converted/中的文件,并将./Converted/Compressed/中的文件复制到./Converted中。满足您的需求。)
https://stackoverflow.com/questions/67261953
复制相似问题