NodeJS:如何使用带有 base64 图像的图像大小?

Ste*_*ffi 2 base64 node.js npm image-size

我找到了节点模块image-size并想用它来获取 base64 编码图像的尺寸。本教程给出了以下获取维度的示例:

var sizeOf = require('image-size');
var dimensions = sizeOf('images/funny-cats.png');
console.log(dimensions.width, dimensions.height);
Run Code Online (Sandbox Code Playgroud)

这里的第二个答案的人的评论中写道它的工作的base64影像。所以我尝试了以下方法:

var img = Buffer.from(base64, 'base64');
var dimensions = sizeOf(img);
console.log(dimensions.width, dimensions.height);
Run Code Online (Sandbox Code Playgroud)

但我得到一个 TypeError: unsupported file type: undefined (file: undefined)

如何将图像大小包的 sizeOf-Method 与变量中的 base64 字符串一起使用?

psc*_*ild 9

尝试这个

var img = Buffer.from(base64.substr(23), 'base64');
var dimensions = sizeOf(img);
console.log(dimensions.width, dimensions.height);
Run Code Online (Sandbox Code Playgroud)

substr(23)cut off data:image/jpeg;base64,,这是Buffer从 base64 数据正确创建 a 所必需的。

  • 最好使用 base64.split(';base64,').pop() 因为它可以是 png 图像,在这种情况下你应该 substr(22) (11认同)