为了账号安全,请及时绑定邮箱和手机立即绑定

Java生成二维码

  • jQuery-qrcode:

        网址:https://github.com/jeromeetienne/jquery-qrcode


    查看全部
  • 生成:

    package com.jz.qrcode;


    import java.awt.Color;

    import java.awt.Graphics2D;

    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.IOException;


    import javax.imageio.ImageIO;


    import com.swetake.util.Qrcode;

    /**

     * 使用QRCode来生成二维码

     * 生成原理:根据java GUI画图工具来生成

     * 

     * */

    public class CreatQRCode {


    public static void main(String[] args) {

    String qrData = "www.baidu.com";

    Qrcode x = new Qrcode();

    x.setQrcodeErrorCorrect('M');//纠错等级

    x.setQrcodeEncodeMode('B');//N 数字   A a-z  B代表其他内容

    /*

    * 版本   1-40

    * 从21x21(版本1),到177x177(版本40),每一版本符号比前一版本每边增加4个模块。

    * */

    int version = 7;

    x.setQrcodeVersion(version);

    //画的长度根据版本的不同,大小不同, 下面的长度计算公式固定

    int width = 67+12*(version-1);

    int height = 67+12*(version-1);

    //BufferedImage.TYPE_INT_RGB    指定图片的RGB 值为int型 的 8位

    BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

    /*

    * Graphics 绘图

    * */

    Graphics2D gs = bufferedImage.createGraphics();

    gs.setBackground(Color.WHITE);

    gs.setColor(Color.BLACK);

    gs.clearRect(0, 0, width, height);

    int pixff = 2;//偏移量

    byte[] d =qrData.getBytes();

    if (d.length>0 && d.length <120){

        boolean[][] s = x.calQrcode(d);


        for (int i=0;i<s.length;i++){

    for (int j=0;j<s.length;j++){

        if (s[j][i]) {

    gs.fillRect(j*3+pixff,i*3+pixff,3,3);

        }

    }

        }

    }

    gs.dispose();

    bufferedImage.flush();

    try {

    ImageIO.write(bufferedImage, "png", new File("D:/baidu2_QRCode.png"));

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }



    识别:

    package com.jz.qrcode;


    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.IOException;


    import javax.imageio.ImageIO;


    import jp.sourceforge.qrcode.QRCodeDecoder;

    /**

     * QRCode 解析二维码信息

     * 

     * */

    public class ReaderQRCode {


    public static void main(String[] args) {

    File file = new File("D:/baidu2_QRCode.png");

    BufferedImage bufferedImage;

    try {

    bufferedImage = ImageIO.read(file);

    QRCodeDecoder codeDecoder = new QRCodeDecoder();

    String result = new String(codeDecoder.decode(new MyQRCodeImage(

    bufferedImage)),"gb2312");

    System.out.println(result);


    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }


    }



    接口:

    package com.jz.qrcode;


    import java.awt.image.BufferedImage;


    import jp.sourceforge.qrcode.data.QRCodeImage;


    public class MyQRCodeImage implements QRCodeImage {


    BufferedImage bufferedImage;

    public MyQRCodeImage(BufferedImage bufferedImage){

    this.bufferedImage = bufferedImage;

    }

    @Override

    public int getHeight() {

    return bufferedImage.getHeight();

    }


    @Override

    public int getPixel(int arg0, int arg1) {

    return bufferedImage.getRGB(arg0, arg1);

    }


    @Override

    public int getWidth() {

    return bufferedImage.getWidth();

    }


    }


    查看全部
  • 查看全部
  • package com.jz.QRCode;


    import java.awt.Image;

    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.IOException;

    import java.util.HashMap;


    import javax.imageio.ImageIO;


    import com.google.zxing.BinaryBitmap;

    import com.google.zxing.EncodeHintType;

    import com.google.zxing.MultiFormatReader;

    import com.google.zxing.Result;

    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;

    import com.google.zxing.common.BitArray;

    import com.google.zxing.common.BitMatrix;

    import com.google.zxing.common.HybridBinarizer;


    public class ReaderQRCode {


    public static void main(String[] args) {


    try {

    /*

    * MultiFormatReader 多格式读取

    * */

    MultiFormatReader formatReader = new MultiFormatReader();

    File file = new File("D:/baidu_QRCode.png");

    //读取图片buffer中

    BufferedImage bufferedImage = ImageIO.read(file);

    /*

    * BinaryBitmap 二进制位图

    * HybridBinarizer 混合二值化器

    * BufferedImageLuminanceSource   图像缓存区 亮度 资源

    * */

    BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage)));

    //定义二维码参数

    HashMap hashMap = new HashMap();

    hashMap.put(EncodeHintType.CHARACTER_SET, "utf-8");//编码方式

    Result result = formatReader.decode(binaryBitmap,hashMap);

    System.out.println("解析结果:"+result.toString());

    System.out.println("二维码格式类型:"+result.getBarcodeFormat());//BarcodeFormat   条形码格式

    System.out.println("二维码文本内容:"+result.getText());

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }


    查看全部
  • /** *使用zxing生成二维码 */ 

    public class CreateQRCode { 

     public static void main(String[] arge) throws WriterException, IOException{

     int width = 300;//定义图片宽度 int height = 300;//定义图片高度 String format ="png";//定义图片格式 String content ="www.8664600.com";//定义二维码内容 //定义二维码参数 HashMap hints =  new HashMap(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//设置编码 //设置容错等级,等级越高,容量越小 hints.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.M); hints.put(EncodeHintType.MARGIN,2);//设置边距 //生成矩阵 BitMatrix bitMatrix = new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE, width, height); //设置路径 Path file = new File("C:/Users/qqazl001/Desktop/Rui/ma.png").toPath(); MatrixToImageWriter.writeToPath(bitMatrix, format, file);//输出图像 } }

    查看全部
  • Zxing:

      网址:https://github.com/zxing/

      特点:开源 java编写

      下载后为源代码,需要自己打成jar包(包含core中的 com和javase中的com)

    查看全部
  • https://img1.sycdn.imooc.com//5b225ee100011d6e04790247.jpg

    https://img1.sycdn.imooc.com//5b225f1200011d3b08120056.jpg

    https://img1.sycdn.imooc.com//5b225f2600017b9307370402.jpg

    纠错能力越高,承载信息越少

    https://img1.sycdn.imooc.com//5b225f500001cbff05980319.jpg






    查看全部
    0 采集 收起 来源:QR Code

    2018-06-14

  • 二维码的分类

    查看全部
    0 采集 收起 来源:二维码分类

    2018-06-12

  • QR 二维码

    查看全部
    0 采集 收起 来源:QR Code

    2018-05-22

  • 二维码
    查看全部
  • 生成

    查看全部
    0 采集 收起 来源:QR Code

    2018-04-22

  • QR Code

    查看全部
    0 采集 收起 来源:QR Code

    2018-04-22

  • QR code

    查看全部
    0 采集 收起 来源:QR Code

    2018-04-22

  • 缺点

    查看全部
    0 采集 收起 来源:二维码优缺点

    2018-04-22

  • 优点

    查看全部
    0 采集 收起 来源:二维码优缺点

    2018-04-22

举报

0/150
提交
取消
课程须知
本门课程是Java的中级课程 ,学习前需要具备Java基础知识,并对Java Web有所了解。
老师告诉你能学到什么?
1、了解二维码的概念 2、掌握如何使用ZXing、QRCode、jquery-qrcode三种方式生成二维码 3、如何解析二维码

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!