首页 > 解决方案 > 调用 .toBuffer() 时,锐化输入文件包含不受支持的图像格式

问题描述

在尖锐物体上调用该.toBuffer()方法时,出现以下错误:

Input buffer contains unsupported image format

我正在从 S3 获取图像,并且我确定它作为缓冲区检索,然后传递给Sharp。

此外,当我 console.log 缓冲区的 base64 并检查后面的内容时,我确实得到了原始图像并且文件类型是 jpeg,所以我似乎无法弄清楚为什么它会说输入缓冲区包含不受支持的图像格式.

const imageBuffer = fileFromS3.Body
console.log(imageBuffer)
console.log(imageBuffer.toString('base64'))

let result = await sharp(imageBuffer)
  .toColourspace('b-w')
  .sharpen()
  .toBuffer()

当我在运行 toBuffer() 之前检查尖锐的对象时,我在对象中得到了这个数据:

let result = await sharp(imageBuffer)
  .toColourspace('b-w')
  .sharpen()

console.log(result)

印刷:

...
input: {
      failOnError: true,
      limitInputPixels: 268402689,
      sequentialRead: false,
      buffer: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 03 02 02 02 02 02 03 02 02 02 03 03 03 03 04 06 04 04 04 04 04 08 06 06 05 ... 96981 more bytes>
    }

标签: node.jssharp

解决方案


推荐阅读