Java implementiert die Kodierung und Dekodierung des QR -Code -QRCode
Einige der beteiligten Hauptklassenbibliotheken sind für alle für alle heruntergeladen:
Code lib: Qrcode_Swetake.jar (offizielle Website Einführung-- http://www.swetake.com/qr/index-e.html)
Decodieren lib: qrcode.jar (offizielle Website Einführung-- http://sourceforge.jp/projects/qrcode/)
【1】 Codierung:
Java -Code QrCodeEncoderHandler.java
Paket Michael.qrcode; Import Java.awt.Color; Import Java.awt.Graphics2d; Import Java.awt.image.BuffenedImage; Import Java.io.file; import Javax.imageo.imageo; import com.swetake.util.qrcode; /** * QR -Codegenerator * @blog http://sjsky.iteye.com * @Author Michael */public class QrCodeCoderHandler {/** * qr code generieren (QRCode) Image * @param content * @param imgpath */public void coderqrCode (String -Inhalt, String -Inhalt, String imgpath) {try {{qrcode qrcode Qrcode (); QrCodeHandler.setQrCodeErrorCorrect ('M'); qrCodeHandler.setQrCodeEenCodemode ('B'); QrCodeHandler.SetQrCodeVersion (7); System.out.println (Inhalt); 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); // Bildfarbe festlegen> schwarz gs.setColor (color.black); // SET -Offset für nicht festgelegt werden kann zu einem Parsing -Fehler int pixoff = 2; // Inhalt ausgeben> QR -Code if (contentBytes.length> 0 && contentBytes.length <120) {boolean [] [] codeout = qrCodeHandler.calqrCode (contentBytes); für (int i = 0; i <codeout.length; i ++) {für (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 -Inhalts -Bytes Länge =" + contentBytes.length + "Nicht in [0,120]."). } Gs.Dispon (); bufimg.flush (); Datei imgFile = neue Datei (IMGPath); // QR -Code QRCode Image ImageIo.Write (bufimg, "png", imgFile) generieren; } catch (Ausnahme e) {e.printstacktrace (); }}/** * @param args die Befehlszeilenargumente */public static void main (string [] args) {string imgpath = "d: /test/twocode/michael_qrcode.png"; String content = "Hallo groß, klein, Willkommen bei QRCode!" + "/nmyblog [http://sjsky.iteye.com]" + "/nemail [[email protected]]" + "/ntwitter [@Suncto]"; QRCodeEnCoderHandler -Handler = new QrCodeEnCoderHandler (); Handler.EncoderQrCode (Inhalt, ImgPath); System.out.println ("Encoder QRCode Success"); }}Das nach dem Laufen generierte QR -Code -Bild lautet wie folgt:
Zu diesem Zeitpunkt können Sie die QR -Code -Scan -Software Ihres Mobiltelefons (ich verwende: Android Story QR -Code), um sie zu testen. Die Screenshots der erfolgreichen Identifizierung sind wie folgt:
Freunde, die es mögen, können es herunterladen und ausprobieren und ein paar Visitenkarten oder Dinge erstellen, die sie mögen. Natürlich kann Java auch QR -Code -Bilder dekodieren. Weitere Informationen zum Dekodieren finden Sie im folgenden Inhalt.
【2】 Decodierung:
Java -Code QrcodedeCoderHandler.java
Paket Michael.qrcode; Import Java.awt.image.BuffenedImage; Import Java.io.file; importieren java.io.ioException; import Javax.imageo.imageo; Importieren Sie JP.SourceForge.qrcode.qrcodeDeCoder; importieren jp.sourceforge.qrcode.data.qrcodeImage; importieren jp.sourceforge.qrcode.exception.decodingFailedException; /** * @blog http://sjsky.iteye.com * @author Michael */ public class QRCodeDecoderHandler { /** * Decode QR code* @param imgPath * @return String */ public String decoderQRCode(String imgPath) { // QRCode QR code image file File imageFile = new File(imgPath); 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 (neuer String (decodedData.getBytes ("gb2312"), // "gb2312")); //} catch (Exception e) {// // todo: Handle Exception //}} catch (ioException e) {System.out.println ("Fehler:" + e.getMessage ()); E. printstacktrace (); } catch (decodingFailedException dfe) {System.out.println ("Fehler:" + dfe.getMessage ()); dfe.printstacktrace (); } return decodedData; } / ** * @param args die Befehlszeilenargumente * / 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 ("Das Analyseergebnis ist wie folgt:"); System.out.println (decoderContent); System.out.println ("============ Decodierer Erfolg !!!"); } Klasse J2SEIMage implementiert 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); }}}Die laufenden Ergebnisse sind wie folgt (der dekodierte Inhalt stimmt mit dem zuvor eingegebenen Inhalt überein):
Die Analyseergebnisse sind wie folgt:
Hallo groß, klein, willkommen bei QRCode!
Myblog [http://sjsky.iteye.com]
E -Mail [[email protected]]
Twitter [@Suncto]
=========== Decodierer Erfolg !!!
Das obige ist die Sammlung der Codierung und Dekodierung des Java -QR -Code -QRCode. Wir werden in Zukunft weiterhin relevante Informationen hinzufügen. Vielen Dank für Ihre Unterstützung für diese Seite!