Java تنفذ ترميز وفك تشفير رمز QRCode QR
بعض مكتبات الفصل الرئيسية المعنية مريحة للجميع لتنزيلها:
رمز lib: qrcode_swetake.jar (موقع الويب الرسمي مقدمة-http://www.swetake.com/qr/index-e.html)
Decode lib: qrcode.jar (موقع الويب الرسمي مقدمة- http://sourceforge.jp/projects/qrcode/)
【1】 الترميز:
Java Code 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 * @plog http://sjsky.iteye.com * author michael */public class qrcodeencoderHandler {/** * إنشاء رمز QR (qrcode) صورة * @param * param imgpath */public void encoderqrcod qrcode () ؛ qrcodehandler.setqrcodeerrorcorrect ('m') ؛ qrcodehandler.setqrcodeencodeMode ('b') ؛ qrcodehandler.setqrcodeversion (7) ؛ system.out.println (content) ؛ byte [] contentBytes = content.getBytes ("GB2312") ؛ BufferedImage bufimg = جديد bufferedImage (140 ، 140 ، bufferedImage.type_int_rgb) ؛ graphics2d gs = bufimg.creategraphics () ؛ Gs.SetBackground (color.hite) ؛ Gs.ClearRect (0 ، 0 ، 140 ، 140) ؛ // تعيين لون الصورة> الأسود gs.setColor (color.black) ؛ // set set Offset not to set قد يتسبب في تحليلية خطأ int pixoff = 2 ؛ // إخراج محتوى> رمز QR if (contentBytes.length> 0 && contentBytes.length <120) {boolean [] [] codeout = qrcodehandler.calqrcode (contentBytes) ؛ لـ (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) ؛ }}}} آخر {system.err.println ("qrcode content bytes length =" + contentBytes.length + "not in [0،120].") ؛ } gs.dispose () ؛ bufimg.flush () ؛ ملف imgfile = ملف جديد (imgpath) ؛ // إنشاء رمز QR qrcode imageio.write (bufimg ، "png" ، imgfile) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }}/** * param args وسيطات سطر الأوامر */public static void main (string [] args) {string imgpath = "d: /test/twocode/michael_qrcode.png" ؛ Content Content = "Hello Big ، Small ، مرحبًا بك في QRCode!" + "/nmyblog [http://sjsky.iteye.com]" + "/nemail [[email protected]]" + "/ntwitter [suncto]" ؛ qrcodeencoderHandler Handler = qrcodeencoderHandler () جديد ؛ Handler.EncoderQrCode (المحتوى ، imgpath) ؛ System.out.println ("Encoder QRCode Sciverse") ؛ }}صورة رمز الاستجابة السريعة التي تم إنشاؤها بعد التشغيل كما يلي:
في هذا الوقت ، يمكنك استخدام برنامج مسح رمز الاستجابة السريعة لهاتفك المحمول (أنا أستخدم: رمز QR Story Android) لاختباره. لقطات الشاشة لتحديد الهوية الناجحة هي كما يلي:
يمكن للأصدقاء الذين يحبونها تنزيله وتجربته ، ويقومون ببعض بطاقات العمل أو الأشياء التي يحبونها. بالطبع ، يمكن لـ Java أيضًا فك تشفير صور رمز الاستجابة السريعة ، يرجى الاطلاع على المحتوى التالي حول فك التشفير.
【2】 فك التشفير:
Java Code 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 ؛ /** * @plog http://sjsky.iteye.com * Author Michael */public class qrcodedecoderHandler {/** * decode QR code * @param imgpath * @string */public string decoderqrcode (string imgpath) {// qrcod BufferedImage bufimg = null ؛ سلسلة decodedData = فارغة ؛ حاول {bufimg = imageio.read (imageFile) ؛ QRCODEDECODER DECODER = QRCODEDECODER () جديد ؛ decodedData = سلسلة جديدة (decoder.decode (new J2Seimage (bufimg))) ؛ // حاول {// system.out.println (سلسلة جديدة (decodedData.getBytes ("GB2312") ، // "GB2312")) ؛ //} catch (استثناء e) {// // todo: التعامل مع الاستثناء //}} catch (ioException e) {system.out.println ("error:" + e.getMessage ()) ؛ E.PrintStackTrace () ؛ } catch (decodingFailedException dfe) {system.out.println ("error:" + dfe.getMessage ()) ؛ dfe.printstacktrace () ؛ } إرجاع decodeddata ؛ } / ** * param args وسيطات سطر الأوامر * / public static void main (string [] args) {qrcodeDeCoderHandler Handler = new qrcodedeCodeRhandler () ؛ String imgPath = "D: /test/twocode/michael_qrcode.png" ؛ string decodercontent = handler.decoderqrcode (imgpath) ؛ System.out.println ("نتيجة التحليل هي كما يلي:") ؛ system.out.println (decoderContent) ؛ System.out.println ("============== Decoder Success !!!") ؛ } class j2seimage تنفذ qrcodeimage {bufferedImage bufimg ؛ public 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]
============ Decoder Success !!!
ما سبق هو جمع ترميز وفك تشفير رمز QRCode Java QR. سنستمر في إضافة المعلومات ذات الصلة في المستقبل. شكرا لك على دعمك لهذا الموقع!