node.js - 调用 .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>
}
解决方案
推荐阅读
- django - 未找到“编辑”的反向。“编辑”不是有效的视图函数或模式名称
- firebase-realtime-database - Firebase 实时数据库规则检查字符串是否包含值
- css - 图片没有显示响应
- python-3.x - 记录不是从 one2many 字段 odoo 中的另一个模型创建的
- sql - 关键字“左”附近的未知 SQL 语法错误
- google-sheets - 基于另一列将多列堆叠在一个列中
- python - 如何将秘密从 GitHub Actions 传递到 python 环境变量?
- r - dplyr:如何将字符串传递给 dplyr 的 mutate 参数
- javascript - 每次 WooCommerce 购物车为空时,如何让脚本运行?
- flutter - 如何从购物车中删除商品?