0
我正在尝试缩减节点中的图像。我把这个图像存储为base64编码的字符串(即:“data:image/png; base64,iVBOR”等)。我正在使用Sharp npm软件包。该文档似乎描述了sharp可以将文件路径转换为图像或“inputBuffer”。我做了一些Google搜索,并假设他们指的是Buffer类。尝试下面的代码不断导致我收到以下错误:“输入缓冲区包含不支持的图像格式。”我的问题是什么,如果你不确定你能否给我推荐一个更清晰的文档npm包?如何将base64字符串转换为输入缓冲区?
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}`));
}
我看遍了整个互联网,做了一堆猜测和检查,所以原谅我的noob问题。预先感谢您提供的任何帮助!
您是否记得在传递给'Buffer.from()'之前首先剥离非base64头部数据(''data:image/png; base64'''部分)? – mscdex
我不会现在就试试这个 – stckoverflowaccnt12
@mscdex是的现在它的工作原理!谢谢 – stckoverflowaccnt12