QRコードの特徴:
1.高密度エンコーディング、大容量
は、通常のバーコード情報よりも大きい、最大1850文字の大文字、2710数字、または1108バイト、または500文字以上の漢字を収容できます。容量は約数十倍になります。
2. 幅広いコーディング範囲
このバーコードは、画像、音声、テキスト、署名、指紋、その他のデジタル化された情報をエンコードでき、複数の言語とテキストを表現できます。画像データ。
3. 強力な耐障害性と誤り訂正機能
ミシン目や汚れなどにより部分的に破損した場合でも、正しく読み取ることができ、破損箇所があれば情報を復元することができます。 50%に達します。
4. 高いデコード信頼性
通常のバーコードデコードエラー率2ppmよりもはるかに低く、ビットエラー率は1000万分の1を超えません。
5.暗号化対策を導入可能
機密保持と偽造防止が良好です。
6. 低コスト、簡単に作成でき、耐久性があります
上記の特性により、QR コードはますます人気があり、その用途はますます普及しています (詳細については、Baidu 百科事典の序論を参照してください)はこの記事の焦点ではありません)、QR コードを開発する方法を知っていることは非常に良い知識の蓄えであるため、この記事では QR コードを生成および解析する方法について説明します。
この記事では、zxing による QR コードの生成と分析について説明します。コードを直接入力するだけです
import java.io.File;import java.io.IOException;import java.nio.file.Path;import java.util.HashMap;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class TestZXing {public static void main(String[] args) {int width=300;int height=300; String format="png"; String contents="www.baidu.com"; HashMap map=new HashMap(); map.put(EncodeHintType.CHARACTER_SET, "utf-8"); map.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.M); map.put(EncodeHintType.MARGIN, 0);try { BitMatrix bm = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height); Path file=new File("D:/img.png").toPath(); MatrixToImageWriter.writeToPath(bm, format, file); } catch (WriterException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
上記のコードは、コンテンツ リンク www.baidu.com を含む QR コードを生成します。
このQRコードを解析するコードは以下の通りです
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.NotFoundException;import com.google.zxing.Result;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.google.zxing.common.HybridBinarizer;public class TestRead {public static void main(String[] args) {try { MultiFormatReader reader=new MultiFormatReader();//需要详细了解MultiFormatReader的小伙伴可以点我一下官方去看文档File f=new File("D:/img.png"); BufferedImage image=ImageIO.read(f); BinaryBitmap bb=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image))); HashMap map =new HashMap(); map.put(EncodeHintType.CHARACTER_SET, "utf-8"); Result result = reader.decode(bb,map); System.out.println("解析结果:"+result.toString()); System.out.println("二维码格式类型:"+result.getBarcodeFormat()); System.out.println("二维码文本内容:"+result.getText()); } catch (NotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
解析结果:www.baidu.com 二维码格式类型:QR_CODE 二维码文本内容:www.baidu.com
リンク: パスワード: kcjx
以上がJava を使用して QR コードを生成する コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。