QrCode的实现二维码功能

简介:

下面开始写代码

package com.wmsDemo.QRCode;

 

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

 

import javax.imageio.ImageIO;

 

import com.swetake.util.Qrcode;

 

public class QRCodeEncoderHandler {

public void encoderQRCode(String content, String imgPath) { 

       try { 

           Qrcode qrcodeHandler = new Qrcode(); 

        // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小 

           qrcodeHandler.setQrcodeErrorCorrect('H'); 

           qrcodeHandler.setQrcodeEncodeMode('B'); 

           qrcodeHandler.setQrcodeVersion(5); 

           System.out.println(content); 

//            int imgSize = 67 + 12 * (size - 1);

           byte[] contentBytes = content.getBytes("gb2312"); 

           BufferedImage bufImg = new BufferedImage(115, 115, 

                   BufferedImage.TYPE_INT_RGB); 

           Graphics2D gs = bufImg.createGraphics(); 

           gs.setBackground(Color.WHITE); 

           gs.clearRect(0, 0, 115, 115); 

           // 设定图像颜色> BLACK 

           gs.setColor(Color.BLACK); 

           // 设置偏移量 不设置可能导致解析出错 

           int pixoff = 2; 

           // 输出内容> 二维码 

           if (contentBytes.length > 0 && contentBytes.length < 800) { 

               boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes); 

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

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

                       if (codeOut[j][i]) { 

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

                       } 

                   } 

               } 

           } else { 

               System.err.println("QRCode content bytes length = " 

                       + contentBytes.length + " not in [ 0,120 ]. "); 

           } 

           gs.dispose(); 

           bufImg.flush(); 

           File imgFile = new File(imgPath); 

           // 生成二维码QRCode图片 

           ImageIO.write(bufImg, "png", imgFile); 

       } catch (Exception e) { 

           e.printStackTrace(); 

       } 

   } 

   /**

 

    * @param args the command line arguments

 

    */ 

 

   public static void main(String[] args) { 

    //取当前时间为图片名称 带毫秒的

    SimpleDateFormat sdf =   new SimpleDateFormat("yyyyMMddHHmmssSSS" );

Date d=new Date();

String str=sdf.format(d);

       String imgPath = "D:/QRCode/twocode/"+str+".png"; 

       String content= "这是测试";

       QRCodeEncoderHandler handler = new QRCodeEncoderHandler(); 

       handler.encoderQRCode(content, imgPath); 

       System.out.println("imgPath:"+imgPath);

       System.out.println("encoder QRcode success"); 

   } 

相关文章
|
iOS开发
iOS - QRCode 二维码
1、QRCode 在 iOS7 以前,在 iOS 中实现二维码和条形码扫描,我们所知的有,两大开源组件 ZBar 与 ZXing。iOS7 之后可以利用系统原生 API 生成二维码, iOS8 之后可以生成条形码, 系统默认生成的颜色是黑色。
2807 0
|
8月前
|
小程序 JavaScript
微信小程序长按识别图片二维码功能
微信小程序长按识别图片二维码功能
696 0
|
8月前
|
Python
生成二维码
使用Python生成二维码可借助`qrcode`库。安装库:`pip install qrcode[pil]`。创建二维码的步骤如下: ```python import qrcode
122 0
|
8月前
|
JavaScript
js生成二维码和解析二维码
js生成二维码和解析二维码
120 0
|
小程序
微信小程序生成二维码。把文字,链接,网址等生成二维码
微信小程序生成二维码。把文字,链接,网址等生成二维码
382 0
|
移动开发 Android开发 iOS开发
iOS WebView长按网页里的图片识别图片中的二维码和保存图片
iOS WebView长按网页里的图片识别图片中的二维码和保存图片
iOS WebView长按网页里的图片识别图片中的二维码和保存图片
利用Qrcode生成二维码
``` import com.swetake.util.Qrcode; import javax.imageio.ImageIO; import java.awt.*; import java.awt
145 0
|
Java
带圆角LOGO的QrCode二维码实时生成
最近工作中经常要用到QrCode二维码,研究了一下,写了个带圆角LOGO的JAVA实现,QrCode之所以能在中间放个LOGO图标,是因为编码时的信息冗余。
2087 0
29使用QRcode方式生成二维码
29使用QRcode方式生成二维码
214 0
29使用QRcode方式生成二维码
|
程序员 C# 图形学
C# 生成二维码,彩色二维码,带有Logo的二维码及普通条形码
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心!    废话少说,咱直接进入正题:    目前来说,比较流行的二维码生成方式有两种:一种是:QrCode.Net和谷歌的Zxing.Net,我个人比较倾向于使用ZXing.Net,今天本篇博客主要讲解Zxing.Net的使用。
1994 0