【问题标题】:nodejs Sharp resized images become 0 bytesnodejs Sharp调整大小的图像变为0字节
【发布时间】:2021-09-06 15:30:37
【问题描述】:

我在 nodejs 应用程序中使用 sharp 来调整图像大小。有时候人上传图片时,总能成功保存主图,但是调整大小后的图片有时会保存为0字节。

           await temp.mv(path.resolve(folderName + name + '.' + extension))
                .then((results) => {
                    
                    sharp(folderName + name + '.' + extension)
                        .resize(150, 110, {
                            fit: 'cover'
                        })
                        .toFile(folderName + name + '-150x110' + '.' + extension, function(err) {
                            console.log(err);
                        })

                    sharp(folderName + name + '.' + extension)
                        .resize(350, 350, {
                            fit: 'cover'
                        })
                        .toFile(folderName + name + '-350x350' + '.' + extension, function(err) {
                            console.log(err);
                        })

                    sharp(folderName + name + '.' + extension)
                        .resize(385, 258, {
                            fit: 'cover'
                        })
                        .toFile(folderName + name + '-385x258' + '.' + extension, function(err) {
                            console.log(err);
                        })


                })

过去有没有人遇到过尖锐的问题?直到最近我才遇到任何问题,而且图像的文件大小并不大。我想知道这是否是缓冲区问题,但我不知道为什么图像有时会是 0 字节,看起来完全随机。我可以上传一张图片并返回 5 张质量调整大小的图片,但有时您上传一张图片并获得几张 0 字节的图片。

【问题讨论】:

    标签: node.js image-processing sharp


    【解决方案1】:

    我认为您对执行异步处理的代码有疑问。

    另外,awaitcallbackcatch/then 都在代码中混淆了。我相信只需await 就能解决您的问题。

    检查一下:

    try {
      const results = await temp.mv(path.resolve(folderName + name + '.' + extension));
      await sharp(folderName + name + '.' + extension)
        .resize(150, 110, {
          fit: 'cover'
        })
        .toFile(folderName + name + '-150x110' + '.' + extension);
    
      await sharp(folderName + name + '.' + extension);
        .resize(350, 350, {
          fit: 'cover'
        })
        .toFile(folderName + name + '-350x350' + '.' + extension);
    
      await sharp(folderName + name + '.' + extension)
        .resize(385, 258, {
          fit: 'cover'
        })
        .toFile(folderName + name + '-385x258' + '.' + extension);
    } catch (err) {
      console.log(err.message);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-17
      • 2021-04-25
      • 2019-11-15
      • 2015-08-04
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多