Java реализует кодирование и декодирование QR -кода QRCode
Некоторые из основных библиотек классов удобны для всех для загрузки:
Code 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 -кодовой генератор * @blog http://sjsky.iteye.com * @author michael */public class qrcodeencoderhandler {/** * генерировать код qr (qrcode) * @param content * @param imgpath */public void incoderQdcode (String Content, string imgpath) {try Try Qrcode (); qrcodehandler.setqrcodeerrorrorcrect ('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); // установить цвет изображения> Черный Gs.setColor (color.black); // Настройка смещения, чтобы не установить, может привести к ошибке анализа int pixoff = 2; // Вывод содержимого> QR -код 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 + "не в [0,120]."); } gs.dispose (); bufimg.flush (); File imgfile = new File (imgpath); // генерировать QR -код QRCode Image ImageIo.Write (bufimg, "png", imgfile); } catch (Exception e) {e.printstackTrace (); }}/** * @param аргументы командной строки */public static void main (string [] args) {string imgpath = "d: /test/twocode/michael_qrcode.png"; String Content = "Привет, большой, маленький, добро пожаловать в qrcode!" + "/nmyblog [http://sjsky.iteye.com]" + "/nemail [[email protected]]" + "/ntwitter [@sunco]"; Qrcodeencoderhandler handler = new qrcodeencoderhandler (); handler.encoderqrcode (content, imgpath); System.out.println ("Encoder QRCode Success"); }}QR -код изображение, сгенерированное после запуска, выглядит следующим образом:
В настоящее время вы можете использовать программное обеспечение для сканирования QR -кода вашего мобильного телефона (я использую: QR -код Android Story) для его проверки. Скриншоты успешной идентификации следующие:
Друзья, которые нравятся, могут скачать его и попробовать, и сделать несколько визитных карточек или вещей, которые им нравятся. Конечно, Java также может декодировать QR -коды изображения, пожалуйста, см. Следующий контент о декодировании.
【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; /** * @blog http://sjsky.iteye.com * @author michael */public class qrcodedecoderhandler {/** * decode qr code * @param imgpath * @return String */public String decoderkrcode (String imgpath) {// qrcode qrile file file file = new -image = new -image = new -image = new -imagpath = new -imagpath) qrcode qr -код. BufferedImage bufimg = null; String decodeddata = null; try {bufimg = imageio.read (imagefile); Qrcodedecoder decoder = new qrcodedecoder (); decodeddata = new String (decoder.decode (new j2seimage (bufimg))); // try {// system.out.println (new String (decodeddata.getbytes ("gb2312"), // "gb2312")); //} catch (Exception e) {// // todo: обрабатывать исключение //}} 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 аргументы командной строки * / public static void main (string [] args) {qrcodedecoderhandler handler = new qrcodedecoderhandler (); String imgpath = "d: /test/twocode/micale_qrcode.png"; String decodercontent = handler.decoderqrcode (imgpath); System.out.println («Результат анализа выглядит следующим образом:»); System.out.println (decodercontent); System.out.println ("============ Успех декодера !!!"); } класс 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 [@sunco]
========== успех декодера !!!
Выше приведено сбор кодирования и декодирования QR -кода Java QR. Мы будем продолжать добавлять соответствующую информацию в будущем. Спасибо за поддержку этого сайта!