在图像中查找QR码并使用Zxing对其进行解码

用户名

首先,我通读了所有有关如何在Java中使用Zxing的主题,但始终会因缺少com.google.zxing.client.j2se。*而出错(我在eclipse中加载了zxing core-3.2.1.jar以及其他所有内容zxing软件包可以工作,除非使用j2se)或刚刚找到了创建qr图像的解决方案...

我的目的是编写一种方法,该方法获取图像文件,然后在该图像中找到二维码,对二维码进行解码并返回字符串,基本上,它应该类似于以下内容:

import com.google.zxing.*;

public class QRCode {

    /*
     * ...
     */

    public String getDecodedString(SomeStandardImageType photo){
        // detect the qr code in a photo
        // create qr image from detected area in photo
        // decode the new created qr image and return the string
        return "This is the decoded dataString from the qr code in the photo";
    }

}

总结一下方法应该得到一个如下的图像文件

在此处输入图片说明

并应返回网址;如果失败,则返回“”。

该代码应与Zxing 3.2.1兼容。

编辑:问题已解决。对于对此感兴趣的其他人,我想说的是,既要添加外部罐子core-3.2.1.jar javase-3.2.1.jar又要添加到外部罐子,这一点很重要我的答案在没有后者的情况下有效,但取决于android图像库。

桑迪普(Sandip bhoi)

这是创建二维码并从二维码中读取消息的代码

  1. 您需要构建zxing库

  2. 主要描述二维码的创建和二维码的提取

    package com.attendance.mark;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.imageio.ImageIO;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.BinaryBitmap;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatReader;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.NotFoundException;
    import com.google.zxing.Result;
    import com.google.zxing.WriterException;
    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.common.HybridBinarizer;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    
    public class QRCode {
    
        /**
         * 
         * @param args 
         * @throws WriterException
         * @throws IOException
         * @throws NotFoundException
         */
      public static void main(String[] args) throws WriterException, IOException,
          NotFoundException {
        String qrCodeData = "student3232_2015_12_15_10_29_46_123";
        String filePath = "F:\\Opulent_ProjectsDirectory_2015-2016\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\AttendanceUsingQRCode\\QRCodes\\student3232_2015_12_15_10_29_46_123";
        String charset = "UTF-8"; // or "ISO-8859-1"
        Map<EncodeHintType, ErrorCorrectionLevel> hintMap = new HashMap<EncodeHintType, ErrorCorrectionLevel>();
        hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
    
        createQRCode(qrCodeData, filePath, charset, hintMap, 200, 200);
        System.out.println("QR Code image created successfully!");
    
        System.out.println("Data read from QR Code: "
            + readQRCode(filePath, charset, hintMap));
    
      }
    
      /***
       * 
       * @param qrCodeData
       * @param filePath
       * @param charset
       * @param hintMap
       * @param qrCodeheight
       * @param qrCodewidth
       * @throws WriterException
       * @throws IOException
       */
      public static void createQRCode(String qrCodeData, String filePath,
          String charset, Map hintMap, int qrCodeheight, int qrCodewidth)
          throws WriterException, IOException {
        BitMatrix matrix = new MultiFormatWriter().encode(
            new String(qrCodeData.getBytes(charset), charset),
            BarcodeFormat.QR_CODE, qrCodewidth, qrCodeheight);
        MatrixToImageWriter.writeToFile(matrix, filePath.substring(filePath
            .lastIndexOf('.') + 1), new File(filePath));
      }
    
      /**
       * 
       * @param filePath
       * @param charset
       * @param hintMap
       * 
       * @return Qr Code value 
       * 
       * @throws FileNotFoundException
       * @throws IOException
       * @throws NotFoundException
       */
      public static String readQRCode(String filePath, String charset, Map hintMap)
          throws FileNotFoundException, IOException, NotFoundException {
        BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
            new BufferedImageLuminanceSource(
                ImageIO.read(new FileInputStream(filePath)))));
        Result qrCodeResult = new MultiFormatReader().decode(binaryBitmap, hintMap);
        return qrCodeResult.getText();
      }
    }
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ZXing.Net无法解码相机捕获的QR码

来自分类Dev

Zxing库,用于Android中的QR码

来自分类Dev

我无法使用ZXing.NET.Mobile在Xamarin中看到生成的QR码图像

来自分类Dev

如何在Windows Phone 8.1上使用Zxing创建QR码图像

来自分类Dev

是否可以更改ZXing生成的QR码中的“点”形状?

来自分类Dev

Android使用Zxing生成QR码和条形码

来自分类Dev

使用ZXing直接从相机扫描QR码图片

来自分类Dev

ZXing无法识别QR码

来自分类Dev

ZXing QR Code Reader解码功能中的空值

来自分类Dev

在C#中使用ZXing从Byte []解码QR代码

来自分类Dev

在bash中使用qrencode和zbarimg在qr码中编码/解码二进制数据

来自分类Dev

如何检测图像中的QR码图案?

来自分类Dev

无法使用pyzbar和python3解码QR码

来自分类Dev

从Windows Phone图像库使用Zxing扫描QR图像

来自分类Dev

从Windows Phone图像库使用Zxing扫描QR图像

来自分类Dev

从数据URI解码QR码

来自分类Dev

用python解码QR码

来自分类Dev

在Android中使用Zxing在onActivityResult中获取二维码扫描图像

来自分类Dev

在Android中使用Zxing在onActivityResult中获取二维码扫描图像

来自分类Dev

如何使用 ZXing 库从图像中识别二维码?

来自分类Dev

在Flutter中将图像作为字符串存储在Sqlite中并对其进行解码

来自分类Dev

如何使用Java脚本在现有图像中嵌入QR码?

来自分类Dev

使用Zxing库Xamarin Android进行半屏QR扫描

来自分类Dev

使用Zxing解码qrcode

来自分类Dev

不读取带有URL的QR码时,zxing QRCodeReader中的ChecksumException

来自分类Dev

使用Zxing生成具有自定义点形状的QR码

来自分类Dev

如何在Odoo的POS收据中添加QR码图像

来自分类Dev

Imagemagick,清除QR码图像中的噪点

来自分类Dev

如何使用Zxing条码扫描库解码EAN128条码

Related 相关文章

  1. 1

    ZXing.Net无法解码相机捕获的QR码

  2. 2

    Zxing库,用于Android中的QR码

  3. 3

    我无法使用ZXing.NET.Mobile在Xamarin中看到生成的QR码图像

  4. 4

    如何在Windows Phone 8.1上使用Zxing创建QR码图像

  5. 5

    是否可以更改ZXing生成的QR码中的“点”形状?

  6. 6

    Android使用Zxing生成QR码和条形码

  7. 7

    使用ZXing直接从相机扫描QR码图片

  8. 8

    ZXing无法识别QR码

  9. 9

    ZXing QR Code Reader解码功能中的空值

  10. 10

    在C#中使用ZXing从Byte []解码QR代码

  11. 11

    在bash中使用qrencode和zbarimg在qr码中编码/解码二进制数据

  12. 12

    如何检测图像中的QR码图案?

  13. 13

    无法使用pyzbar和python3解码QR码

  14. 14

    从Windows Phone图像库使用Zxing扫描QR图像

  15. 15

    从Windows Phone图像库使用Zxing扫描QR图像

  16. 16

    从数据URI解码QR码

  17. 17

    用python解码QR码

  18. 18

    在Android中使用Zxing在onActivityResult中获取二维码扫描图像

  19. 19

    在Android中使用Zxing在onActivityResult中获取二维码扫描图像

  20. 20

    如何使用 ZXing 库从图像中识别二维码?

  21. 21

    在Flutter中将图像作为字符串存储在Sqlite中并对其进行解码

  22. 22

    如何使用Java脚本在现有图像中嵌入QR码?

  23. 23

    使用Zxing库Xamarin Android进行半屏QR扫描

  24. 24

    使用Zxing解码qrcode

  25. 25

    不读取带有URL的QR码时,zxing QRCodeReader中的ChecksumException

  26. 26

    使用Zxing生成具有自定义点形状的QR码

  27. 27

    如何在Odoo的POS收据中添加QR码图像

  28. 28

    Imagemagick,清除QR码图像中的噪点

  29. 29

    如何使用Zxing条码扫描库解码EAN128条码

热门标签

归档