我正在使用锐利的服务器端来准备要在 web 应用程序中提供的图片。当前的目标是加载图片(BMP 格式),将其加载到 nodejs 中,将其转换为 PNG,调整其大小(按比例缩小)并将其保存回磁盘。代码如下:
if(resize_pictures){
(...)
console.log('Reducing image size ... ');
fs.readdirSync(input_folder).forEach(file => {
tmp_input_path = path.join(input_folder, file)
tmp_output_path = path.join(tmp_folder_reduced, file)
//Resize
sharp(tmp_input_path)
.png() // Convert to png
.resize(target_width,null)
.flatten()
.toFile(tmp_output_path,
function(err){
if(err){
console.log("Error at reducing size / converting picture : ")
console.log(err)
console.log(tmp_input_path);
console.log(tmp_output_path);
return;
}
})
})
console.log('Image reduction completed.');
我收到此错误:
Reducing image size ...
Image reduction completed.
Error at reducing size / converting picture :
[Error: Input file contains unsupported image format]
/home/user/<folder>/16c93ac9f297376b1b44eeeecff141b1f59a239d.bmp
/home/user/<folder>/TMP/16c93ac9f297376b1b44eeeecff141b1f59a239d.bmp
输出文件夹保持为空。
我真的不明白为什么:路径是正确的,因此可以访问。图片存储在磁盘上,路径直接在服务器端计算(所以没有编码问题,因为我可能在其他地方看到过这个问题)。
有人会有想法或解决方案吗?