Java ใช้การเข้ารหัสและถอดรหัสรหัส QR QRCODE
ห้องสมุดชั้นหลักบางแห่งที่เกี่ยวข้องมีความสะดวกสำหรับทุกคนในการดาวน์โหลด:
รหัส lib: qrcode_swetake.jar (แนะนำเว็บไซต์อย่างเป็นทางการ-http://www.swetake.com/qr/index-e.html)
ถอดรหัส lib: qrcode.jar (การแนะนำเว็บไซต์อย่างเป็นทางการ- http://sourceforge.jp/projects/qrcode/)
【 1 】การเข้ารหัส:
รหัส java qrcodeencoderhandler.java
แพ็คเกจ michael.qrcode; นำเข้า Java.awt.Color; นำเข้า java.awt.graphics2d; นำเข้า java.awt.image.bufferedimage; นำเข้า Java.io.File; นำเข้า Javax.imageio.imageio; นำเข้า com.swetake.util.qrcode; /** * qr code generator * @blog http://sjsky.iteye.com * @author michael */คลาสสาธารณะ qrcodeencoderhandler {/** * สร้างรหัส QR (qrcode) ภาพ * @param @param imgpath */void public encoderqrcode qrcode (); qrCodeHandler.SetQrCodeERRORCORRECT ('M'); qrCodeHandler.SetQrCodeEncodeMode ('B'); qrCodeHandler.SetQrCodeVersion (7); System.out.println (เนื้อหา); ไบต์ [] contentBytes = content.getBytes ("GB2312"); bufferedImage bufimg = bufferedImage ใหม่ (140, 140, bufferedimage.type_int_rgb); graphics2d gs = bufimg.createGraphics (); gs.setbackground (สีขาว); gs.clearrect (0, 0, 140, 140); // ตั้งค่าสีภาพ> สีดำ gs.setcolor (color.black); // ตั้งค่าออฟเซ็ตไม่ให้ตั้งค่าอาจทำให้เกิดข้อผิดพลาดในการแยกวิเคราะห์ int pixoff = 2; // เนื้อหาเอาต์พุต> รหัส QR ถ้า (contentByTes.Length> 0 && contentByTes.Length <120) {boolean [] [] codeOut = qrCodeHandler.CalqRCode (contentByTes); สำหรับ (int i = 0; i <codeout.length; i ++) {สำหรับ (int j = 0; j <codeout.length; j ++) {ถ้า (codeout [j] [i]) {gs.fillrect (j * 3+pixoff, i * 3+pixoff, 3, 3); }}}} else {system.err.println ("qrcode เนื้อหา bytes length =" + contentBytes.length + "ไม่ได้อยู่ใน [0,120]"); } gs.dispose (); bufimg.flush (); ไฟล์ imgfile = ไฟล์ใหม่ (imgpath); // สร้างรหัส QR QRCode Imageio.write (bufimg, "png", imgfile); } catch (exception e) {e.printstacktrace (); }}/** * @param args อาร์กิวเมนต์บรรทัดคำสั่ง */โมฆะคงที่สาธารณะหลัก (สตริง [] args) {string imgpath = "d: /test/twocode/michael_qrcode.png"; String content = "สวัสดีใหญ่ขนาดเล็กยินดีต้อนรับสู่ qrcode!" + "/nmyblog [http://sjsky.iteye.com]" + "/nemail [[email protected]]" + "/ntwitter [@SUNCTO]"; qRCodeEncoderHandler handler = ใหม่ qRCodeEncoderHandler (); handler.encoderqrcode (เนื้อหา, imgpath); System.out.println ("Encoder QRCode Success"); -ภาพรหัส QR ที่สร้างขึ้นหลังจากการทำงานมีดังนี้:
ในเวลานี้คุณสามารถใช้ซอฟต์แวร์สแกนรหัส QR ของโทรศัพท์มือถือของคุณ (ฉันใช้: รหัส QR เรื่องราว Android) เพื่อทดสอบ ภาพหน้าจอของการระบุตัวตนที่ประสบความสำเร็จมีดังนี้:
เพื่อนที่ชอบมันสามารถดาวน์โหลดและลองใช้และทำนามบัตรหรือสิ่งที่พวกเขาชอบ แน่นอน Java ยังสามารถถอดรหัสภาพรหัส QR ได้โปรดดูเนื้อหาต่อไปนี้เกี่ยวกับการถอดรหัส
【 2 】การถอดรหัส:
รหัส java qrcodedecoderhandler.java
แพ็คเกจ michael.qrcode; นำเข้า java.awt.image.bufferedimage; นำเข้า Java.io.File; นำเข้า java.io.ioException; นำเข้า Javax.imageio.imageio; นำเข้า jp.sourceforge.qrcode.qrcodeDecoder; นำเข้า jp.sourceforge.qrcode.data.qrcodeimage; นำเข้า jp.sourceforge.qrcode.exception.decodingfailedexception; /** * @blog http://sjsky.iteye.com * @author Michael */คลาสสาธารณะ qrcodeDecoderHandler {/** * decode qr code * @param imgpath * @return image image image image filef) bufferedImage bufimg = null; สตริง decodedData = null; ลอง {bufimg = imageio.read (imagefile); qRCodeDecoder decoder = ใหม่ qRCodeDecoder (); decodedData = สตริงใหม่ (decoder.decode (ใหม่ j2seimage (bufimg))); // ลอง {// system.out.println (สตริงใหม่ (decodedData.getBytes ("GB2312"), // "GB2312")); //} catch (Exception e) {// // todo: จัดการข้อยกเว้น //}} catch (ioexception e) {system.out.println ("ข้อผิดพลาด:" + e.getMessage ()); E.PrintStackTrace (); } catch (decodingFaileDexception dfe) {system.out.println ("ข้อผิดพลาด:" + dfe.getMessage ()); dfe.printstacktrace (); } return decodedData; } / ** * @param args อาร์กิวเมนต์บรรทัดคำสั่ง * / โมฆะคงที่สาธารณะหลัก (สตริง [] args) {qrcodedecoderhandler handler = ใหม่ qrcodeDecoderHandler (); string imgpath = "d: /test/twocode/michael_qrcode.png"; สตริง decodercontent = handler.decoderqrCode (imgPath); System.out.println ("ผลการวิเคราะห์มีดังนี้:"); System.out.println (decodercontent); System.out.println ("============= ความสำเร็จของตัวถอดรหัส !!!"); } คลาส j2seimage ใช้ qrcodeimage {bufferedimage bufimg; สาธารณะ j2seimage (bufferedimage 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); -ผลลัพธ์ที่รันมีดังนี้ (เนื้อหาที่ถอดรหัสสอดคล้องกับเนื้อหาที่ป้อนก่อนหน้านี้):
ผลการวิเคราะห์มีดังนี้:
สวัสดีใหญ่ขนาดเล็กยินดีต้อนรับสู่ qrcode!
myblog [http://sjsky.iteye.com]
อีเมล [[email protected]]
Twitter [@SUNCTO]
=========== ความสำเร็จของตัวถอดรหัส !!!
ด้านบนเป็นคอลเลกชันของการเข้ารหัสและถอดรหัสรหัส Java QR qrcode เราจะยังคงเพิ่มข้อมูลที่เกี่ยวข้องในอนาคต ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!