首页 > 其他分享 >二维码zxing

二维码zxing

时间:2022-12-27 10:00:52浏览次数:34  
标签:google java zxing 二维码 new import com

com.google.zxing
package com.common.utils;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
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.WriterException;
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 QrCodeHelper {
    /**
     * 生成包含字符串信息的二维码图片
     * 
     * @param filePath
     *            文件输出流路径
     * @param content
     *            二维码携带信息
     * @param qrCodeSize
     *            二维码图片大小
     * @param imageFormat
     *            二维码的格式
     * @throws WriterException
     * @throws IOException
     */
    public static boolean createQrCode(String filePath, String content, int qrCodeSize, String imageFormat)
            throws WriterException, IOException {
        // 设置二维码纠错级别MAP
        Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>();
        hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); // 矫错级别
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        // 创建比特矩阵(位矩阵)的QR码编码的字符串
        BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
        // 使BufferedImage勾画QRCode (matrixWidth 是行二维码像素点)
        int matrixWidth = byteMatrix.getWidth();
        BufferedImage image = new BufferedImage(matrixWidth - 200, matrixWidth - 200, BufferedImage.TYPE_INT_RGB);
        image.createGraphics();
        Graphics2D graphics = (Graphics2D) image.getGraphics();
        graphics.setColor(Color.WHITE);
        graphics.fillRect(0, 0, matrixWidth, matrixWidth);
        // 使用比特矩阵画并保存图像
        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 - 100, j - 100, 1, 1);
                }
            }
        }
        OutputStream outputStream = new FileOutputStream(new File(filePath));
        boolean write = ImageIO.write(image, imageFormat, outputStream);
        outputStream.close();
        return write;
    }

    /**
     * 读二维码并输出携带的信息
     */
    public static void readQrCode(InputStream inputStream) throws IOException {
        // 从输入流中获取字符串信息
        BufferedImage image = ImageIO.read(inputStream);
        // 将图像转换为二进制位图源
        LuminanceSource source = new BufferedImageLuminanceSource(image);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
        QRCodeReader reader = new QRCodeReader();
        Result result = null;
        try {
            result = reader.decode(bitmap);
        } catch (ReaderException e) {
            e.printStackTrace();
        }
        System.out.println(result.getText());
    }

    public static void main(String[] args) throws IOException, WriterException {  
        createQrCode("src\\main\\java\\qrcode666.jpg","haha is hello",900,"JPEG");
    }  

}

 

标签:google,java,zxing,二维码,new,import,com
From: https://www.cnblogs.com/moonsoft/p/17007411.html

相关文章

  • 为微信小程序生成信息二维码
    需求概述:要求用户在小程序某页面填写信息之后,点击提交信息,然后生成一个二维码,相关确认人员通过扫描二维码来确认用户的信息,相关的需求,比如我们平时的电影票二维码生成等等,......
  • C# 使用QRCoder生成二维码
    @目录简介第一步安装Nuget包QRCoder第二步创建一个公共类QRCoderHelper.cs第三步窗体代码第四步实现方式简介最近瞎琢磨的一些小东西,也算是一个比较完整的二维码......
  • C# 使用QRCoder生成二维码
    简介最近瞎琢磨的一些小东西,也算是一个比较完整的二维码生成了,上手也很快,可自行扩展。现在生成二维码有多种方式,我使用的是QRCoder。第一步安装Nuget包QRCoder也可以......
  • 【二维码图像矫正增强】基于MATLAB的二维码图像矫正增强处理仿真
    1.软件版本matlab2013b2.算法流程概述通过形态学处理获得二维码部分的图像区域及边界;采用凸包算法来计算边界上的点集;然后根据点集来寻找二维码的四个顶点,然后透视变......
  • C# xorpay 生成支付二维码 和 回调业务处理
    ///<summary>///post生成支付订单///</summary>///<paramname="order"></param>///<returns></returns>publicsta......
  • 微信二维码名片不显示头像 微信二维码怎么恢复原来的样式
    新版本的微信更新之后,微信的个人名片二维码中间不是自己的头像了。而且二维码的识别率也没有之前的高了!好多年朋友在问微信二维码怎么换成以前那种中间带头像的?想应该如何......
  • 微信二维码变不回带头像的了 二维码带头像咋弄的?
    微信改版后,二维码不带头像了,很多人不知道如何恢复带头像的二维码,今天我来教下大家!第一步:微信聊天框输入制作代码158.400.lv发送后点击打开第二步:上传自己的二维码和......
  • Android 扫描二维码(Scan Kit)
    华为统一扫码服务(ScanKit)能够提供专业的二维码与条形码扫描与解析能力,通过集成ScanKit,帮助应用快速构建扫码功能。统一扫码服务的功能全面的码识别能力:ScanKit支持全......
  • .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
    最新版的.NET平台中,微软在逐步放弃System.Drawing.Imaging,给出的理由如下:System.Drawing命名空间对某些操作系统和应用程序类型有一些限制。在Windows,System.Draw......
  • Excel二维码图片生成器
    Excel二维码图片生成器它可以将excel文件的数据,每行数据生成一张二维码图片,并保存到电脑。软件无需安装,解压后即可直接使用,无需联网,操作简便快捷。软件下载地址:点此下载......