`
xiaoyuclub
  • 浏览: 19370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

二维码生成及解析

 
阅读更多


使用Zxing来对二维码生成和解析
 



 

package com.whl.qrcode;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class CreateQrCodeTest {

    public static void createQrCode(OutputStream outputStream, String content, int qrCodeSize, String imageFormat){
        try{
            // Create the ByteMatrix for the QR-Code that encodes the given String.
            Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>();
            hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
            QRCodeWriter qrCodeWriter = new QRCodeWriter();
            BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
           
            // Make the BufferedImage that are to hold the QRCode
            int matrixWidth = byteMatrix.getWidth();
            BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB);
            image.createGraphics();
            Graphics2D graphics = (Graphics2D) image.getGraphics();
            graphics.setColor(Color.WHITE);
            graphics.fillRect(0, 0, matrixWidth, matrixWidth);

            // Paint and save the image using the ByteMatrix
            graphics.setColor(Color.BLACK);
            for (int i = 0; i < matrixWidth; i++){
                for (int j = 0; j < matrixWidth; j++){
                    if (byteMatrix.get(i, j)){
                        graphics.fillRect(i, j, 1, 1);
                    }
                }
            }

            ImageIO.write(image, imageFormat, outputStream);
        }catch (Exception ex) {
            ex.printStackTrace();
        }
    }
   
    public static void readQrCode(InputStream inputStream) throws IOException{
       
        //get the data from the input stream
        BufferedImage image = ImageIO.read(inputStream);

        //convert the image to a binary bitmap source
        LuminanceSource source = new BufferedImageLuminanceSource(image);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

        //decode the barcode
        QRCodeReader reader = new QRCodeReader();

        Result result = null ;
        try {
         result = reader.decode(bitmap);
        } catch (ReaderException e) {
         //the data is improperly formatted
            e.printStackTrace();
        }

        System.out.println(result.getText());
    }

    public static void main(String[] args) throws IOException {

//        createQrCode(new FileOutputStream(new File("d:\\qrcode.jpg")),"name:whl",300,"JPEG");
   
        readQrCode(new FileInputStream(new File("d:\\qrcode.jpg")));
    }

}

 

效果图:   附件为zxing jar文件

 

并且很方便的设置前景 背景颜色 及logo上传

  • 大小: 14.1 KB
分享到:
评论

相关推荐

    java二维码生成及解析(内含QRCode所需jar包)

    二维码生成及解析内涵两个java类原码与QRCode所需的jar包。 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码...

    二维码生成及解析demo

    二维码生成及解析是现代信息化应用中的重要组成部分,广泛应用于各种场景,如网页链接、电子票务、支付凭证等。在Java环境下,有多种库和工具可用于生成二维码,本示例主要涉及了`zwing`、`Qrcode`以及基于...

    java 二维码生成及解析demo

    在IT行业中,二维码作为一种高效的信息编码方式,广泛应用于各种场景,如链接分享、电子票务、产品追溯等。本教程将深入讲解如何使用...通过这个简单的"java 二维码生成及解析demo",你将能够快速上手并掌握相关技术。

    二维码生成及解析源码

    2. **二维码生成** 要生成二维码,我们需要使用`MultiFormatWriter`和`BitMatrix`类。首先,将要编码的数据转换为`BarcodeFormat`对象,然后调用`encode`方法生成`BitMatrix`对象。接着,使用`BitmapEncoder`将其...

    二维码生成及解析 jar包

    生成二维码,并对生成的二维码进行解析。把要用的jar包下下来,导入到项目里去。qrcode需要设置一个版本号,这个版本号代表你生成的二维码的像素的大小。版本1是21*21的,版本号每增加1,边长增加4。也就是说版本7的...

    基于java的二维码生成与解析demo

    这是一个基于java开发的二维码生成与解析 可以根据程序配置的参数设置生成二维码的图片大小 以及密度 这是一个基于java开发的二维码生成与解析 可以根据程序配置的参数设置生成二维码的图片大小 以及密度 这是一个...

    二维码生成、解析C++实现

    C++作为一款强大的编程语言,可以很好地处理二维码生成和解析的任务。在描述中提到的源码修改,通常是指对已有的代码进行优化或修复错误,以提高程序的稳定性和效率。对于纠错能力的增强,可能涉及到了更高级的错误...

    二维码生成和解析

    二维码生成和解析是现代信息化技术中的重要组成部分,尤其在移动互联网和物联网领域中广泛应用。Java作为一门跨平台的编程语言,提供了丰富的库和工具来支持二维码的生成与解析。本篇将详细介绍如何在Java环境中实现...

    Google二维码生成(解析)zxing库Android

    Google二维码生成解析zxing库 Android 代码,可以实现二维码生成,亲测可用。 代码为2016年6月9日从GitHub下载的,版本为3.2.1 GitHub对应地址代码为: https://github.com/zxing/zxing jar包原始下载地址为:...

    二维码生成、解析(C#源码)

    本资源提供了C#语言实现的二维码生成与解析的源码,帮助开发者快速集成二维码功能到自己的应用中。下面将详细阐述二维码的工作原理以及C#中实现二维码生成和解析的关键知识点。 一、二维码工作原理 二维码由黑白...

    基于Spring Boot的二维码生成与解析接口.zip

    本项目是关于"基于Spring Boot的二维码生成与解析接口",将重点探讨如何在Spring Boot环境中实现二维码的生成与解码功能。 首先,二维码(Quick Response Code)是一种二维条形码,能够存储更多的数据,包括URL、...

    Java二维码生成/解析工具

    QRCodeUtils使用文档详见博客https://blog.csdn.net/qq_24091555/article/details/81263472

    二维码生成与解析代码实现

    二维码生成与解析是现代信息化社会中常见的技术,广泛应用于各种场景,如名片交换、网址跳转、支付等。本文将详细讲解如何通过源码实现这一功能,并探讨其中的关键知识点。 首先,我们来看`TwoDimensionCode.java`...

    二维码生成与解析

    二维码技术在现代社会中被广泛应用,从商品条码到...以上就是关于“二维码生成与解析”的核心知识点,通过理解这些原理和代码实现,开发者可以轻松地在自己的应用程序中集成二维码功能,从而提升用户体验和服务效率。

    Android版二维码生成,和解析

    在`ecodeTest`这个项目中,你可以找到一个已经实现二维码生成和解析功能的示例,通过运行这个项目,你可以更好地理解和学习如何在Android应用中集成二维码功能。在实际开发中,记得根据项目需求进行适当的优化和调整...

    Java实现的生成二维码和解析二维码URL操作示例

    Java 实现生成二维码和解析二维码 URL 操作示例 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在实际应用中,生成二维码和解析二维码 URL 是非常常见的操作。本文将详细介绍 Java 实现生成二维码和解析...

    二维码生成解析工具

    在这一背景下,二维码生成解析工具应运而生,旨在为用户提供一个简单易用的平台,实现二维码的快速生成与内容解析。 二维码,顾名思义,是一种能够存储信息的二维图形符号。它将数据编码在由黑色模块组成的方形阵列...

    Java 二维码生成、解析

    Java 二维码生成与解析是Java开发中常见的功能需求,尤其在移动互联网时代,二维码被广泛应用于数据交换、链接跳转、支付凭证等场景。本文将详细介绍如何使用Google的ZXing库来实现Java环境下的二维码生成与解析。 ...

Global site tag (gtag.js) - Google Analytics