ホームページ  >  記事  >  Java  >  JavaはQRコードのエンコードとデコードを実装します QRCodeとサンプル分析

JavaはQRコードのエンコードとデコードを実装します QRCodeとサンプル分析

高洛峰
高洛峰オリジナル
2017-01-20 15:17:011738ブラウズ

Java は QR コード QRCode のエンコードとデコードを実装します

いくつかの主要なクラス ライブラリが含まれており、誰でもダウンロードできて便利です:

エンコーディング ライブラリ: Qrcode_swetake.jar (公式 Web サイトの紹介 -- http://www.swetake.com/ qr /index-e.html) qrcode.jar のデコード: lib:

実行後に生成される QR コード画像は次のとおりです:

この時点では、携帯電話の QR コード スキャン ソフトウェア (I使用: Android スナップショット QR コード) をテストしてください。成功した認識のスクリーンショットは次のとおりです。もちろん、Java も QR コード画像をデコードできます。詳しくは、以下のデコードに関するコンテンツを参照してください。

[2] デコード:

Java コード QRCodeDecoderHandler.javaJavaはQRコードのエンコードとデコードを実装します QRCodeとサンプル分析

package michael.qrcode; 
  
import java.awt.Color; 
import java.awt.Graphics2D; 
import java.awt.image.BufferedImage; 
import java.io.File; 
  
import javax.imageio.ImageIO; 
  
import com.swetake.util.Qrcode; 
  
/**
 * 二维码生成器
 * @blog http://sjsky.iteye.com
 * @author Michael
 */
public class QRCodeEncoderHandler { 
  
 /**
 * 生成二维码(QRCode)图片
 * @param content
 * @param imgPath
 */
 public void encoderQRCode(String content, String imgPath) { 
 try { 
  
 Qrcode qrcodeHandler = new Qrcode(); 
 qrcodeHandler.setQrcodeErrorCorrect('M'); 
 qrcodeHandler.setQrcodeEncodeMode('B'); 
 qrcodeHandler.setQrcodeVersion(7); 
  
 System.out.println(content); 
 byte[] contentBytes = content.getBytes("gb2312"); 
  
 BufferedImage bufImg = new BufferedImage(140, 140, 
  BufferedImage.TYPE_INT_RGB); 
  
 Graphics2D gs = bufImg.createGraphics(); 
  
 gs.setBackground(Color.WHITE); 
 gs.clearRect(0, 0, 140, 140); 
  
 // 设定图像颜色> BLACK 
 gs.setColor(Color.BLACK); 
  
 // 设置偏移量 不设置可能导致解析出错 
 int pixoff = 2; 
 // 输出内容> 二维码 
 if (contentBytes.length > 0 && contentBytes.length < 120) { 
 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) { 
 String imgPath = "D:/test/twocode/Michael_QRCode.png"; 
  
 String content = "Hello 大大、小小,welcome to QRCode!"
 + "\nMyblog [ http://sjsky.iteye.com ]"
 + "\nEMail [ sjsky007@gmail.com ]" + "\nTwitter [ @suncto ]"; 
  
 QRCodeEncoderHandler handler = new QRCodeEncoderHandler(); 
 handler.encoderQRCode(content, imgPath); 
  
 System.out.println("encoder QRcode success"); 
 } 
}

実行結果は次のとおりです (デコードされた内容は以前に入力した内容と一致しています):

解析結果は次のとおりです:

JavaはQRコードのエンコードとデコードを実装します QRCodeとサンプル分析Hello Big,小さい、QRCode へようこそ!

Myblog [ http://sjsky.iteye.com ]

EMail [ sjsky007@gmail.com ]

Twitter [ @suncto ]

========デコーダ成功! !!

上記は Java での QR コード QRCode のエンコードとデコードに関する情報をまとめたものです。 今後も関連情報を追加していきますので、よろしくお願いします。

QR コードの Java 実装に関する詳細については、QRCode のエンコードとデコード、サンプル分析関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。