【发布时间】:2017-09-21 21:43:52
【问题描述】:
我正在尝试对节点中的图像进行下采样。我将该图像存储为 base64 编码字符串(即:“data:image/png;base64,iVBOR”等)。我正在使用夏普 npm 包。该文档似乎描述了 sharp 可以采用图像的文件路径或“inputBuffer”。我做了一些谷歌搜索,并假设 Buffer 类是他们所指的。不断尝试下面的代码导致我收到以下错误:“输入缓冲区包含不支持的图像格式。”我的问题可能是什么,如果您不确定是否可以向我推荐一个具有更清晰文档的其他 npm 包?
const downsizeProfileImgForTweet = (user, cb) => {
let imgBuffer = Buffer.from(user.profileImg, 'base64');
sharp(imgBuffer)
.resize(52, 52)
.toBuffer()
.then(data => {
console.log("success");
user.profileImg = data;
cb()
} )
.catch( err => console.log(`downisze issue ${err}`) );
}
我浏览了整个互联网并做了一堆猜测和检查,所以请原谅我的菜鸟问题。提前感谢您提供的任何帮助!
【问题讨论】:
-
您是否记得在传递给
Buffer.from()之前先去除非base64 标头数据('data:image/png;base64,'部分)? -
我现在不会尝试
-
@mscdex 是的,现在可以了!谢谢