Java는 QR 코드 QRCode의 인코딩 및 디코딩을 구현합니다
관련된 주요 클래스 라이브러리 중 일부는 모든 사람이 다운로드하기에 편리합니다.
코드 lib : qrcode_swetake.jar (공식 웹 사이트 소개-http://www.swetake.com/qr/index-e.html)
Decode lib : qrcode.jar (공식 웹 사이트 소개- http://sourceforge.jp/projects/qrcode/)
Coding : 코딩 :
Java Code qrcodeencoderHandler.java
패키지 Michael.qrcode; import java.awt.color; import java.awt.graphics2d; java.awt.image.bufferedimage import; import java.io.file; import javax.imageio.imageio; import com.swetake.util.qrcode; /** * QR 코드 생성기 * @blog http://sjsky.itey.com * @author michael */public class qrcodeencoderhandler {/** * qr 코드 생성 (qrcode) 이미지 * @param content * @param imgpath */public void alcoderqrcode (string img) {qrode qrcode img intpit) 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); 그래픽 2d gs = bufimg.creategraphics (); gs.setbackground (color.white); Gs.ClearRect (0, 0, 140, 140); // 이미지 색상 설정> 검은 색 gs.setColor (color.black); // 설정하지 않도록 오프셋을 설정하십시오. 구문 분석 오류가 발생할 수 있습니다 int pixoff = 2; // output content> qr code if (contentBytes.length> 0 && contentBytes.length <120) {boolean [] [] codeout = qrcodehandler.calqrcode (contentBytes); for (int i = 0; i <codeout.length; i ++) {for (int J = 0; }}}} else {system.err.println ( "qrcode content bytes length =" + contentBytes.length + "는 [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 = "안녕하세요 크고 작은 QRCode에 오신 것을 환영합니다!" + "/nmyBlog [http://sjsky.itey.com]" + "/nemail [[email protected]]" + "/ntwitter [@suncto]"; qrcodeencoderHandler handler = new qrcodeencoderHandler (); handler.encoderqrcode (content, imgpath); System.out.println ( "Encoder Qrcode 성공"); }}실행 후 생성 된 QR 코드 이미지는 다음과 같습니다.
현재 휴대 전화의 QR 코드 스캐닝 소프트웨어 (I are : Android Story QR 코드)를 사용하여 테스트 할 수 있습니다. 성공적인 식별의 스크린 샷은 다음과 같습니다.
좋아하는 친구들은 그것을 다운로드하여 시험해 볼 수 있으며 명함이나 좋아하는 것들을 만들 수 있습니다. 물론 Java는 QR 코드 이미지를 디코딩 할 수 있습니다. 디코딩에 대한 다음 내용을 참조하십시오.
【2 od 디코딩 :
Java Code QRCODEDECODERHANDLER.java
패키지 Michael.qrcode; java.awt.image.bufferedimage import; import java.io.file; import java.io.ioexception; import javax.imageio.imageio; jp.sourceforge.qrcode.qrcodedecoder 가져 오기; jp.sourceforge.qrcode.data.qrcodeimage 가져 오기; jp.sourceforge.qrcode.exception.DecodingFailedException 가져 오기; /** * @blog http://sjsky.itey.com * @author michael */public class qrcodedecoderhandler {/** * decode qr code * @param imgpath * @return string */public string decoderqrcode (string imgpath) {// qrcode qr code image file imagefile (img pile) BufferedImage bufimg = null; 문자열 decodedData = null; try {bufimg = imageio.read (imageFile); qrcodedecoder decoder = 새로운 qrcodedecoder (); decodedData = new String (decoder.decode (new j2seimage (bufimg))); // try {// system.out.println (new String (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 (); } return decodedData; } / ** * @param args 명령 줄 인수 * / public static void main (String [] args) {qrcodedeCoderHandler handler = new qrcodedeCoderHandler (); String imgpath = "d : /test/twocode/michael_qrcode.png"; 문자열 decodercontent = handler.decoderqrcode (imgpath); System.out.println ( "분석 결과는 다음과 같습니다."); System.out.println (Decodercontent); System.out.println ( "============= 디코더 성공 !!!"); } 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]]
트위터 [@suncto]
=========== 디코더 성공 !!!
위는 Java QR 코드 QRCode의 인코딩 및 디코딩 모음입니다. 우리는 향후 관련 정보를 계속 추가 할 것입니다. 이 사이트를 지원 해주셔서 감사합니다!