2009-07-16 5 views
22

자바 (J2SE)의 오픈 소스 QR 코드 이미지 생성기 구성 요소를 찾고 있는데 오픈 소스 라이센스는 GPL 라이센스가 아니어야합니다. 가까운 소스 프로젝트에 포함됨).QR 코드 이미지 생성기 (오픈 소스이지만 GPL 없음)

현재로서는 프로젝트에서 웹에 액세스 할 수 없으므로 Google API가 없습니다.

답변

26

머서 - 아니요, 라이브러리에도 엔코더가 있습니다. com.google.zxing.qrcode.encoder. Google Chart API를 사용하는 예제 웹 앱 외에도이를 제공합니다.

+0

고맙습니다! 난 그냥 qrCode.getMatrix()를 사용하여 이미지를 만들어야합니다. getArray(); – oneeyejack

+7

다른 누구도이 작업을 수행하는 경우 기본 아이디어를 heres합니다. Encoder.encode()를 사용하여 새로 인스턴스화 된 QRCode의 세부 정보를 '채울'수 있습니다. 그런 다음 위에서 제안한대로 QRCode.getMatrix(). getArray()에서 byte [] []를 가져옵니다. 각 바이트 행은 QRCode에 대한 픽셀 행인 것으로 보이며 각 바이트는 0 또는 1입니다. 이 시점에서 픽셀을 BufferedImage에 페인트하거나 래스터를 AWT 이미지로 변환 할 수 있습니다. – CarlG

+11

... 또는 제공된 모든 클래스 MatrixToImageWriter를 사용하여이 모든 작업을 수행 할 수 있습니다! –

14

ZXing is는 Java로 구현 된 오픈 소스, 다중 형식 1D/2D 바코드 이미지 처리 라이브러리입니다. Apache License에 따라 으로 배포되므로 독점 소프트웨어 및 무료 및 오픈 소스 소프트웨어 개발을위한 소스 코드를 사용할 수 있습니다.

+1

QR 코드가 생성되지 않습니다. 그것은 단지 그들을 스캔합니다. –

+2

qr 생성기의 웹 앱 예제에서 그들은 qr 코드를 생성하기 위해 http://code.google.com/apis/chart/types.html#qrcodes를 사용하고 있습니다. –

+0

프로젝트에서 웹에 액세스 할 수 없으므로 Google API 또는 웹 서비스가 없습니다. – oneeyejack

2

MatrixToImageWriter는 QRCode.getMatrix에서 반환 한 ByteMatrix가 아니라 BitMatrix를 사용합니다.

try { 
     MultiFormatWriter writer = new MultiFormatWriter();  
     Hashtable hints = new Hashtable(); 
     hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.Q);    
     MatrixToImageWriter.writeToFile(writer.encode("hello world", BarcodeFormat.QR_CODE, 800, 800, hints), 
             "png", new File("/tmp/qrcode.png")); 
    } catch (Exception e) { 
     System.out.println("failure: " + e); 
    } 

BTW API에 해시 테이블을 부과하는 것은 깨끗한되지 않습니다 : 안드로이드 소스 코드를보고, 나는 개념 솔루션의 다음과 같은 증거를 발견했다. Map을 사용하십시오. 어쨌든 많은 사람들이 여전히 Hashtable을 사용하고있는 것은 아니며, 거의 항상 HashMap을 사용해야합니다 (몇 가지 사용 사례 제외).

+0

'Map '이없는 J2ME과의 호환성을 위해'Hashtable'을 사용했습니다. 하지만 v2.0부터는 J2ME 지원이 중단되었고 API는'Map'을 사용합니다. –