`

zxing搞的简单的二维码生成

阅读更多

package com.chekn.test.qrcode;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.NotFoundException;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;

public class QrCodeImageCopy {
    
    private static final String outFilePath="D:\\Users\\cks\\Desktop\\TRANSFILE\\QR_CODE\\";
    private static final int width=300;
    private static final int height=300;
    
    private static final int blackRGB=0xFF000000;
    private static final int whiteRGB=0xFFFFFFFF;
    
    private boolean writeQrCodeImage(String code, String fileName) throws WriterException, IOException{
        //编码配置
        Map<EncodeHintType,String> map=new HashMap<EncodeHintType,String>();
        map.put(EncodeHintType.CHARACTER_SET, "utf-8");
        
        //文本数据转换成图像矩阵数据
        BitMatrix bitMatrix=new MultiFormatWriter().encode(code, BarcodeFormat.QR_CODE, width, height,map);
        
        //输出
        System.out.println("width->"+bitMatrix.getWidth()+" height->"+bitMatrix.getHeight());
        File file=new File(outFilePath+fileName+".png");
        BufferedImage bufImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
        for(int x=0;x<width;x++){
            for(int y=0;y<height;y++){
                bufImage.setRGB(x, y, bitMatrix.get(x, y)?blackRGB:whiteRGB);
            }
        }
        
        return ImageIO.write(bufImage, "png", file);
    }
    
    private String readQrCodeImage(File file) throws IOException, NotFoundException{
        //读图
        BufferedImage bufImage=ImageIO.read(file);
        
        //转成位图
        LuminanceSource source=new BufferedImageLuminanceSource(bufImage);
        BinaryBitmap bitmap=new BinaryBitmap(new HybridBinarizer(source));
        
        //解码配置
        Map<DecodeHintType,String> map=new HashMap<DecodeHintType,String>();
        map.put(DecodeHintType.CHARACTER_SET, "utf-8");
        String parseCode= new MultiFormatReader().decode(bitmap,map).getText();
        
        return parseCode;
    }
    
    public static void main(String[] args){
        QrCodeImageCopy qci=new QrCodeImageCopy();
        try {
            System.out.println(Color.GREEN.getRGB()+" black: "+blackRGB+" white: "+whiteRGB);
            for(int i=0;i<5;i++){
                String uuidStr=UUID.randomUUID().toString();
                qci.writeQrCodeImage(uuidStr, Integer.toString(i));
                String parseStr=qci.readQrCodeImage(new File(outFilePath+i+".png"));
                System.out.println(i+": uuidStr->"+uuidStr+", parseStr->"+parseStr);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}

分享到:
评论

相关推荐

    利用ZXING生成简易二维码

    在标题“利用ZXING生成简易二维码”中,提到的核心知识点是使用ZXing库来创建二维码。ZXing库提供了Java、Android以及命令行工具等多种方式来操作二维码。生成二维码的基本步骤包括: 1. **配置ZXing**: 首先,你...

    C# 利用 ZXing.Net 实现二维码生成与识别(WPF 做的一个 Demo)

    一个在 .NET Framework 环境下实现的二维码生成与识别的小程序。 本人综合比较了已有的第三方库,最终选择了 ZXing.Net 。ZXing.Net 是开源项目 https://github.com/zxing/zxing 在 .NET 平台上的实现;虽然 NuGet ...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    Google开源的ZXing(Zebra Crossing)库为开发者提供了跨平台的二维码和条形码生成与解码能力。本项目以ZXing为基础,结合自定义功能,如生成带有Logo的彩色二维码,为开发人员提供了更丰富的应用场景。 ZXing(又...

    zxing3.3.1二维码生成

    这个“zxing3.3.1二维码生成”是一个针对二维码生成功能的特定版本,版本号为3.3.1。这个jar包包含了ZXing库的所有功能,便于开发者在项目中集成二维码生成的功能。 ZXing库支持多种类型的条码和二维码,包括但不...

    Android利用zxing生成二维码,识别二维码超详细、超简易demo

    Android利用zxing生成二维码,识别二维码超详细、超简易demo,解压后用Android studio可直接打开,附教程:https://blog.csdn.net/mountain_hua/article/details/80646089

    java扩展zxing自定义生成二维码源码(美化、艺术)

    看着网上好看的二维码,也想着自己实现一个,经过3周的理论加开发时间,终于实现,详细介绍请看 https://blog.csdn.net/u011837804/article/details/129229973,本源码基于zxing组件扩展实现了草料二维码99%的功能。...

    (安卓APP项目源代码)使用ZXing识别条码二维码(简单的实现).zip

    (安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用ZXing识别条码二维码(安卓APP项目源代码)使用...

    使用Java zxing开发的二维码 带logo彩色二维码

    1. **二维码编码**: 首先,我们需要了解如何使用ZXing生成普通的黑白二维码。ZXing的`com.google.zxing.client.j2se.MatrixToImageWriter`类可以将数据编码为矩阵,并转换为位图图像。通过调用`MatrixToImageConfig`...

    zxing-master 二维码生成 二维码扫描3

    在移动设备上,ZXing通常用于生成和扫描二维码,为移动应用添加数据交换和链接启动功能。 "zxing-master"是ZXing项目的源代码仓库,包含完整的开发源码,可以供开发者进行二次开发或自定义配置。这个压缩包文件提供...

    安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip

    安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip安卓app开发项目-使用ZXing识别条码二维码(简单的实现)(源码).zip安卓app开发...

    Zxing 条形码 二维码生成

    引入必要的命名空间后,就可以使用ZXing提供的类和方法来生成条形码和二维码。 3. **生成二维码/条形码**: - **二维码生成**:可以使用`Writer`接口,如`BarcodeWriter`,并设置所需的编码类型(如QRCode),然后...

    ZXing java生成二维码

    ZXing java 生成 二维码,ZXing-core-2.3.0.jar

    Zxing生成二维码(解决中文乱码)

    这是Zxing的源码,没有打包成jar利于学习使用。...使用时注意path的默认地址,Main类中是生成二维码的代码,GetMain类中是读取二维码的代码。 eclipse中Ctrl+Shift+R快速查找类 希望对你有所帮助。

    zxing3.3.0二维码扫描及二维码生成

    在本文中,我们将深入探讨ZXing 3.3.0版本,包括其核心功能、如何进行二维码扫描以及如何生成二维码。 一、ZXing 3.3.0核心功能 ZXing 3.3.0是ZXing库的一个稳定版本,提供了以下主要功能: 1. **二维码和条形码...

    zxing生成扫描二维码核心库

    在给定的压缩包文件中,我们可以看到几个关键的目录,包括`view`、`encoding`、`camera`、`activity`和`decoding`,这些都是ZXing库的核心组成部分,用于实现二维码的生成和扫描功能。 1. **`view`**: 这个目录包含...

    zxing 二维码扫描demo +js二维码生成demo

    这些库使用简单,只需要提供需要编码的数据和一些可选参数(如尺寸、颜色等),即可生成一个二维码图片。例如,`qrcode-generator`库可以这样使用: ```javascript var qr = qrcode(0, 'L'); qr.addData('...

    C# ZXing.Net 生成二维码支持中文Demo

    这个简单的Demo展示了如何使用ZXing.Net库在C#中生成包含中文的二维码。通过这种方式,你可以轻松地将中文文本编码到二维码中,便于在移动设备上扫描读取。在实际项目中,可以根据需求进行扩展,如添加自定义的样式...

    zxing 二维码 调用实例,解决低版本 白边问题

    ZXing(Zebra Crossing)是Google开发的一个开源项目,用于读取、生成多种条形码和二维码。在本文中,我们将深入探讨如何使用ZXing在Android应用中调用二维码功能,并解决在低版本设备上出现的白边问题。 首先,...

    zxing二维码生成扫描,识别二维码图片,长按识别二维码调用方便简洁

    zxing二维码生成扫描,识别二维码图片,长按识别二维码调用方便简洁,可选择导入as的modules 只需要在bulid.gradle(app) 中的dependencies :里面 compile project(path: ':BarCode')一下就能用。

    STM32 实现二维码解码,用STM32F417,使用Zxing实现的二维码解码

    8. **用户界面**:虽然STM32本身没有图形界面,但可以通过串口、SPI或I2C接口连接外部显示器,实现简单的二维码结果展示。 9. **文档编写**:编写详细的用户手册和开发者指南,帮助其他开发者理解和复用此项目。 ...

Global site tag (gtag.js) - Google Analytics