Java mengimplementasikan pengkodean dan decoding kode QR QRCode
Beberapa perpustakaan kelas utama yang terlibat nyaman bagi semua orang untuk diunduh:
Kode Lib: qrcode_swetake.jar (Pendahuluan Situs Web Resmi-- http://www.swetake.com/qr/index-e.html)
Decode Lib: qrcode.jar (Pendahuluan Situs Web Resmi-- http://sourceforge.jp/projects/qrcode/)
【1】 Coding:
Kode Java qrcodeencoderHandler.java
paket michael.qrcode; impor java.awt.color; impor java.awt.graphics2d; impor java.awt.image.bufferedimage; impor java.io.file; impor javax.imageio.imageio; impor com.swetake.util.qrcode; /** * QR code generator* @blog http://sjsky.iteye.com * @author Michael */ public class QRCodeEncoderHandler { /** * Generate QR code (QRCode) image* @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 (konten); byte [] contentBytes = content.getbytes ("gb2312"); BufferedImage bufimg = BufferedImage baru (140, 140, bufferedImage.type_int_rgb); Grafik2d gs = bufimg.creategraphics (); gs.setBackground (color.hite); gs.clearrect (0, 0, 140, 140); // atur gambar gambar> gs.setcolor hitam (color.black); // Setel offset untuk tidak mengatur dapat menyebabkan kesalahan parsing int pixoff = 2; // Konten Output> Kode QR if (contentBytes.length> 0 && contentBytes.length <120) {boolean [] [] codeout = qrcodeHandler.calqrcode (contentBytes); untuk (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 + "Tidak di [0,120]."); } gs.dispose (); bufimg.flush (); File imgfile = file baru (imgpath); // menghasilkan kode qr qrcode gambar gambaro.write (bufimg, "png", imgfile); } catch (Exception e) {E.PrintStackTrace (); }}/** * @param args argumen baris perintah */public static void main (string [] args) {string imgpath = "d: /test/twocode/michael_qrcode.png"; String Content = "Halo besar, kecil, selamat datang di qrcode!" + "/nmyblog [http://sjsky.iteye.com]" + "/nemail [[email protected]]" + "/ntwitter [@suncto]"; QrcodeencoderHandler handler = qrcodeencoderHandler baru (); handler.encoderqrcode (konten, imgpath); System.out.println ("Encoder Qrcode Success"); }}Gambar kode QR yang dihasilkan setelah berjalan adalah sebagai berikut:
Pada saat ini, Anda dapat menggunakan perangkat lunak pemindaian kode QR dari ponsel Anda (saya menggunakan: Kode QR Android Story) untuk mengujinya. Tangkapan layar dari identifikasi yang berhasil adalah sebagai berikut:
Teman -teman yang menyukainya dapat mengunduhnya dan mencobanya, dan membuat beberapa kartu nama atau hal -hal yang mereka sukai. Tentu saja, Java juga dapat memecahkan kode gambar kode QR, silakan lihat konten berikut tentang decoding.
【2】 decoding:
Kode Java qrcodedecoderHandler.java
paket michael.qrcode; impor java.awt.image.bufferedimage; impor java.io.file; impor java.io.ioException; impor javax.imageio.imageio; impor jp.sourceForge.qrcode.qrcodedecoder; impor jp.sourceForge.qrcode.data.qrcodeimage; impor jp.sourceForge.qrcode.exception.decodingfailedException; /** * @blog http://sjsky.iteye.com * @author michael */kelas publik qrcodedecoderhandler {/** * decode qr code * @param imgpath * @return string */public string decoderqode (string imgpath) {// qrcode qrcode qrcode BuferedImage bufimg = null; String decodeddata = null; coba {bufimg = imageIo.read (imagefile); Qrcodedecoder decoder = qrcodedecoder baru (); decodeddata = string baru (decoder.decode (j2seImage baru (bufimg))); // coba {// system.out.println (string baru (decodeddata.getbytes ("gb2312"), // "gb2312")); //} catch (exception e) {// // todo: handle exception //}} catch (ioException e) {System.out.println ("error:" + e.getMessage ()); e.printstacktrace (); } catch (decodingfailedException dfe) {system.out.println ("error:" + dfe.getMessage ()); dfe.printstacktrace (); } return decodeddata; } / ** * @param Args Argumen baris perintah * / public static void main (string [] args) {qrcodedecoderHandler handler = qrcodedecoderHandler () baru; String imgpath = "d: /test/twocode/michael_qrcode.png"; String decodercontent = handler.decoderqrcode (imgpath); System.out.println ("Hasil analisis adalah sebagai berikut:"); System.out.println (DecoderContent); System.out.println ("============ Decoder Success !!!"); } kelas J2SeImage mengimplementasikan qrcodeimage {buferedimage bufimg; j2seImage publik (buferedimage bufimg) {this.bufimg = bufimg; } public int getWidth () {return bufimg.getWidth (); } public int getHeight () {return bufimg.getHeight (); } public int getPixel (int x, int y) {return bufimg.getrgb (x, y); }}}Hasil yang berjalan adalah sebagai berikut (Konten Decoded konsisten dengan konten yang dimasukkan sebelumnya):
Hasil analisis adalah sebagai berikut:
Halo besar, kecil, selamat datang di QRCode!
Myblog [http://sjsky.iteye.com]
Email [[email protected]]
Twitter [@suncto]
=========== Sukses Decoder !!!
Di atas adalah kumpulan pengkodean dan decoding kode QRCode Java QR. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs ini!