gpt4 book ai didi

javascript - NodeJS 和 Sharp,BMP 到 PNG 错误 : Input file contains unsupported image format

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:23 25 4
gpt4 key购买 nike

我正在使用 Sharp 服务器端来准备要在网络应用程序中提供的图片。当前的目标是加载图片(BMP 格式),使用 Sharp 将其加载到 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.');

enter image description here

我收到此错误:

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

输出文件夹保持为空。

我真的不明白为什么:路径是正确的,因此可以访问。图片存储在磁盘上,路径直接在服务器端计算(因此没有编码问题,因为我可以在其他地方看到有关此问题的信息)。

有人有想法或解决方案吗?

最佳答案

sharp好像不能处理BMP图片。 (参见:https://github.com/lovell/sharp/issues/1255)

所以我切换到 Jimp(参见:https://www.npmjs.com/package/jimp):

  console.log('Reducing image size ... ');
fs.readdirSync(input_folder).forEach(file => {
let tmp_input_path = path.join(input_folder, file)
let tmp_file = file.substr(0, file.lastIndexOf(".")) + ".png";
let tmp_output_path = path.join(tmp_folder_reduced, tmp_file)

if(fs.existsSync(tmp_input_path)){
console.log("File exist ! ")
}

//Resize
Jimp.read(tmp_input_path)
.then(image => {
image
.resize(target_width, Jimp.AUTO)
.write(tmp_output_path)
})
.catch(err => {
console.log("Error at reducing size / converting picture : ")
console.log(err)
console.log(tmp_input_path);
console.log(tmp_output_path);
});

关于javascript - NodeJS 和 Sharp,BMP 到 PNG 错误 : Input file contains unsupported image format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56289547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com