【问题标题】:How to get "raw" image data using javascript?如何使用 javascript 获取“原始”图像数据?
【发布时间】:2020-11-26 17:20:04
【问题描述】:

我有一个 png 图像的 base64 编码(字符串以 data:image/png;base64, 开头)。我的理解是,这是用 png 编码的图像的 base64 表示。有没有办法使用nodejs逐个像素地获取图像的“原始”像素?

【问题讨论】:

  • 明确一点,你想将base64解码为二进制,然后将PNG解码为单个像素颜色值?
  • @Brad 这正是我想做的。

标签: javascript node.js


【解决方案1】:

试试这个。首先从字符串中删除“data:image/png;base64”。即

const img = base64Data.replace(/^data:image\/png;base64,/, "");

然后从base64转换图像。

const imgBuf = Buffer.from(img, 'base64');

此时我们有了二进制图像。然后我们可以得到像素。试试这个模块https://github.com/scijs/get-pixels

const getPixels = require("get-pixels");

getPixels(imgBuf, "image/png", function(err, pixels) {
    if (err) {
        console.log("Bad image path")
        return
    }
    console.log("got pixels")
});

【讨论】:

    【解决方案2】:

    我认为您可以这样做:

    var b64str;
    var buf = new Buffer(b64str, 'base64');
    

    由于Buffer对象用于表示固定长度的字节序列

    【讨论】:

    • 我认为这给了我 png 图像的二进制文件,但不是逐像素值的二进制文件。现在我明白了,我本来可以更清楚自己的问题。
    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多