幾行程式碼搞定java生成解析二維碼功能
最近公司要求掃描二維碼和生成二維碼的功能。而群裡部分網友也提到了。我這裡就寫了一個demo,和大家分享。程式碼很簡介,希望大家能夠喜歡。
網友表示在網上搜尋了很多,發現不是程式碼不全,就是jar不匹配。
我這裡共享了一個zxing的2.2版本的例子,也提供了下載地址。實現程式碼如下:
package com.herman.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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.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.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
/**
* 二維碼工具類
* @author Herman.Xiong
* @date 2015-7-10 上午10:52:15
* @version V3.0
* @since jdk 1.6,tomcat 6.0
*/
public class ZxingUtil {
private static final Map<EncodeHintType, ErrorCorrectionLevel> encodeMap = new HashMap<EncodeHintType, ErrorCorrectionLevel>();
private static final Map<DecodeHintType, ErrorCorrectionLevel> decodeMap=new HashMap<DecodeHintType, ErrorCorrectionLevel>();
private static final String charset="UTF-8",format="png";
private static final int size=150;
private ZxingUtil() {}
/**
* 生成二維碼圖片
* @author Herman.Xiong
* @date 2015-7-10 上午10:26:33
* @param file
* @throws WriterException
* @throws IOException
*/
public static void createQRCode(String data, File file)
throws WriterException, IOException {
MatrixToImageWriter.writeToFile(new MultiFormatWriter().encode(
new String(data.getBytes(charset), charset),
BarcodeFormat.QR_CODE, size, size, encodeMap), format, file);
}
/**
* 讀取二維碼資訊
* @author Herman.Xiong
* @date 2015-7-10 上午10:25:58
* @param filePath 二維碼圖片路徑
* @return
* @throws FileNotFoundException
* @throws IOException
* @throws NotFoundException
*/
public static String readQRCode(String filePath)
throws FileNotFoundException, IOException, NotFoundException {
return new MultiFormatReader().decode(new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(new FileInputStream(filePath))))),decodeMap).getText();
}
public static void main(String [] arg){
try{
createQRCode("http://blog.csdn.net/xmtblog", new File("D:\\111.png"));
System.out.println(readQRCode("D:\\111.png"));
//原始碼下載地址:http://download.csdn.net/detail/xmt1139057136/8886473
//歡迎大家關注我的部落格!如有疑問,請加QQ群:454796847共同學習!
}catch(Exception e){
e.printStackTrace();
}
}
}
執行效果如下:歡迎大家關注我的部落格!如有疑問,請加QQ群:454796847共同學習!
原始碼下載地址:http://download.csdn.net/detail/xmt1139057136/8886473
相關文章
- 直播系統搭建,java二維碼 生成二維碼Java
- java實現二維碼生成Java
- 幾行程式碼教你解決微信生成海報及二維碼行程
- 線上生成二維碼程式碼例項
- Tp生成小程式二維碼
- IOS 二維碼條形碼生成(原生程式碼)iOS
- 二維碼管理平臺 生成二維碼
- 使用ABAP程式碼生成二維碼(QR Code)
- 二維碼解析
- 易易二維碼,多功能線上檔案預覽與二維碼生成器
- Java使用QRGen類庫生成二維碼Java
- java:一鍵生成二維碼工具類Java
- Flutter - 生成二維碼與識別二維碼Flutter
- jquery生成二維碼jQuery
- 二維碼線上生成
- ZXing實現二維碼的生成與解析
- iOS 花式二維碼生成和二維碼識別iOS
- Android 二維碼掃描和生成二維碼Android
- iOS 生成二維碼/條形碼iOS
- Tp框架 生成二維碼框架
- ios--二維碼生成iOS
- 二維碼生成工具類
- 二維碼生成-PythonPython
- c++生成二維碼C++
- JS線上生成二維碼JS
- 二維碼線上生成工具
- 多檔案二維碼生成器線上報名功能,wps線上生成二維碼線上預覽線上分享
- .NET生成微信小程式推廣二維碼微信小程式
- 微信小程式:小程式碼、小程式二維碼、普通二維碼微信小程式
- 二維碼解析器
- 關於 二維碼 解析
- 一行python生成終端二維碼Python
- php生成二維碼圖片PHP
- PHP生成簡單二維碼PHP
- 利用Google API生成二維碼GoAPI
- jq動態生成二維碼
- 使用 Python 生成二維碼Python
- Java 驗證碼、二維碼Java