需要的jar: qrcode.jar和 qrcode_swetake.jar,以及一個工具類,下面有。
創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),小程序開發(fā),10多年建站對高空作業(yè)車租賃等多個方面,擁有多年的網(wǎng)站營銷經(jīng)驗。
package com.sbm.wll.image;
/**
* Java 生成二維碼,解析二維碼
*/
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;
import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.exception.DecodingFailedException;
public class Image {
/**
* 生成二維碼圖片文件
*
* @param content
* 存儲內(nèi)容
* @param imgPath
* 圖片路徑
* @param imgType
* 圖片類型
* @param size
* 二維碼尺寸
*/
public void encoderQRCode(String content, String imgPath, String imgType, int size) {
try {
BufferedImage bufImg = this.qRCodeCommon(content, imgType, size);
File imgFile = new File(imgPath);
// 生成二維碼QRCode圖片
ImageIO.write(bufImg, imgType, imgFile);
System.out.println("二維碼生成成功,路徑:" + imgPath);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生成二維碼,流輸出
*/
public void encoderQRCode(String content, OutputStream output, String imgType, int size) {
try {
BufferedImage bufImg = this.qRCodeCommon(content, imgType, size);
// 生成二維碼QRCode圖片
ImageIO.write(bufImg, imgType, output);
System.out.println("二維碼生成成功,流輸出");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生成二維碼(QRCode)圖片的基本方法
*/
private BufferedImage qRCodeCommon(String content, String imgType, int size) {
BufferedImage bufImg = null;
try {
Qrcode qrcodeHandler = new Qrcode();
// 設(shè)置二維碼排錯率,可選L(7%)、M(15%)、Q(25%)、H(30%),排錯率越高可存儲的信息越少,但對二維碼清晰度的要求越小
qrcodeHandler.setQrcodeErrorCorrect('M');
qrcodeHandler.setQrcodeEncodeMode('B');
// 設(shè)置設(shè)置二維碼尺寸,取值范圍1-40,值越大尺寸越大,可存儲的信息越大
qrcodeHandler.setQrcodeVersion(size);
// 獲得內(nèi)容的字節(jié)數(shù)組,設(shè)置編碼格式
byte[] contentBytes = content.getBytes("utf-8");
// 圖片尺寸
int imgSize = 67 + 12 * (size - 1);
bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_RGB);
Graphics2D gs = bufImg.createGraphics();
// 設(shè)置背景顏色
gs.setBackground(Color.WHITE);
gs.clearRect(0, 0, imgSize, imgSize);
// 設(shè)定圖像顏色 BLACK
gs.setColor(Color.BLACK);
// 設(shè)置偏移量,不設(shè)置可能導(dǎo)致解析出錯
int pixoff = 2;
// 輸出內(nèi)容 二維碼
引用spire.barcode.jar包
//創(chuàng)建BarcodeSettings對象
BarcodeSettings?settings?=?new?BarcodeSettings();
//設(shè)置條碼類型為
QR二維碼settings.setType(BarCodeType.QR_Code);???????
//設(shè)置二維碼數(shù)據(jù)
settings.setData("Hello?123456789");
//設(shè)置二維碼顯示數(shù)據(jù)
settings.setData2D("Hello?123456789");?????
//設(shè)置數(shù)據(jù)類型
settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);
//設(shè)置二維碼模型寬度
settings.setX(1.0f);
//設(shè)置二維碼糾錯級別settings.setQRCodeECL(QRCodeECL.H);
//創(chuàng)建BarCodeGenerator實例
BarCodeGenerator?barCodeGenerator?=?new?BarCodeGenerator(settings);
//根據(jù)settings生成圖像數(shù)據(jù),保存至BufferedImage
BufferedImage?bufferedImage?=?barCodeGenerator.generateImage();
//將圖片數(shù)據(jù)保存為PNG格式
ImageIO.write(bufferedImage,?"png",?new?File("QRCode.png"));
參考:
import com.spire.barcode.BarCodeGenerator;
import com.spire.barcode.BarCodeType;
import com.spire.barcode.BarcodeSettings;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
public class CreateDataMatrix {
public static void main(String[] args) throws Exception {
? //生成BarcodeSettings實例
? BarcodeSettings settings = new BarcodeSettings();
? //設(shè)置條形碼類型為DataMatrix
? settings.setType(BarCodeType.Data_Matrix);
? //設(shè)置條形碼模型寬度
? settings.setX(1.5f);
? //設(shè)置數(shù)據(jù)和顯示文本
? settings.setData("ABC 123456789ABC 123456789ABC 123456789");
? settings.setData2D("ABC 123456789ABC 123456789ABC 123456789");
? //創(chuàng)建BarCodeGenerator實例
? BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
? //根據(jù)settings生成圖像數(shù)據(jù),保存至BufferedImage實例
? BufferedImage bufferedImage = barCodeGenerator.generateImage();
? //保存為PNG圖片
? ImageIO.write(bufferedImage, "png", new File("DataMatrix.png"));
? System.out.println("Complete!");
}
}
用到了spire.barcode for java庫
標(biāo)題名稱:二維碼生成java代碼 二維碼生成 java
文章出自:http://chinadenli.net/article48/dodchhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、定制網(wǎng)站、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)