当前位置: 首页 > 知识库问答 >
问题:

读取二维码-base64图像高度和宽度

佟寒
2023-03-14

我有一个后端节点。jsendpoint,该endpoint应接受base64中包含QR码的图像并返回16位字母数字字符串。(我正在使用qrcode阅读器包)

但是,我遇到一个错误,它说我需要传递一个宽度和高度的图像缓冲区。我不确定如何从base64图像字符串中获得宽度和高度,因为npm上的许多图像包都使用中的文件。png或。jpg格式。

任何建议,我如何可以获得的宽度和高度的图像在Base64?

function readQR(){
    return function(req, res){
        // Load base64 image 
        var base64Image = req.body.image;
        var decodedImg = decodeBase64Image(base64Image);
        var imageBuffer = decodedImg.data;
        qr.callback = function(err, result){
            if(err) console.log(err);
            // Regex check whether it is 16 letter alphanumeric
            if(/^(\w{16,16})$/.test(result)) res.json(result);
            else res.json({
                error: 'Invalid dmac address'
            })
        }
        qr.decode(imageBuffer);
    }
}

共有1个答案

龙俊良
2023-03-14

看起来最简单的方法是将base64转换回文件并读取缓冲区。使用以下代码成功读取二维码。

function readQR(){
    return function(req, res, next){

        var base64Image = req.body.image;   // Load base64 image 
        var decodedImg = decodeBase64Image(base64Image);
        var imageBuffer = new Buffer(decodedImg.data, 'base64');

        fs.writeFileSync(path.join(__dirname, '../', '/temp/image.jpg'), imageBuffer, {encoding: 'base64'}, function(err){
            if(err) console.log(err);
        });
        var buffer = fs.readFileSync(path.join(__dirname, '../', '/temp/image.jpg'));

        Jimp.read(buffer, function(error, image){
            if(error) console.log(error);
            qr.callback = function(err, value){
                if(err) console.log(err);
                console.log(value);
                if(/^(\w{16,16})$/.test(value.result)) res.json({dmac: value.result});
                else res.json({
                    error: 'Invalid dmac address'
                })
            };
            qr.decode(image.bitmap);
        })
    }
}
 类似资料:
  • 我有一个base64 img编码,你可以在这里找到。我怎样才能得到它的高度和宽度?

  • 问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。

  • 我有一个Vue组件,在它里面我有一个img,我需要得到图像尺寸,最好是在显示图像之前(通过宽度或高度来适应容器)。 该代码可能无法工作,映像src可以返回401(还不确定),我们使用代理并从服务器上的存储桶中获取该文件。比如/api/getStorageResource?斑点= 我能做什么呢? 有了链接,我可以通过axios获取图像并将其设置为元素,而不是

  • 问题内容: 我尝试使用PHP函数getimagesize,但无法将图像的宽度和高度提取为整数值。 我该如何实现? 问题答案: 尝试这样: 确保: 您在此处指定正确的图像路径 图像具有读取权限 chmod图像目录到755 此外,请尝试在路径前面加上前缀,这有时在您无法读取文件时会有所帮助。

  • 问题内容: 除了使用ImageIO.read来获取图像的高度和宽度外,还有其他方法吗? 因为我遇到了锁定线程的问题。 此错误仅在Sun应用服务器上发生,因此我怀疑这是Sun错误。 问题答案: 这很简单方便。

  • 如何在jQuery中获取图像的高度和宽度,如果我使用img与类"img响应",并且没有给出任何高度,宽度,最大高度,最大宽度等。 我不希望图像的真实高度和宽度,我们可以从getHeight和getWidth获得,但我想要确切的高度和宽度,我可以在移动浏览器中看到,我看到小高度和宽度,在台式机或笔记本电脑中看到更大的高度和宽度宽度。 这是桌面视图 这是移动视图 我想知道我的屏幕有多少像素被那个图像覆