2011-03-02 6 views
1

안드로이드에서는 ZXing을 사용하여 전화 카메라를 통해 QR 코드를 스캔하고 디코딩 할 수 있습니다.Android 애플리케이션에서 QR 코드 디코딩?

그러나 내 시나리오에서 QR 코드 이미지는 휴대 전화 자체에 저장되므로 디코딩해야합니다.

QR 이미지를 이와 같이 디코딩 할 수 있습니까?

+0

내가 월 Google 검색을 제안 하시겠습니까? 나는 도서관이 있다는 것을 확신한다. –

+1

카메라를 통해 QR 코드를 스캔하는 라이브러리가 있습니다. 하지만 제 요구 사항은 조금 다릅니다. – Veera

+0

Veera, ZXing 코드를 사용하여 비트 맵에서이 작업을 수행 할 수 있으며 카메라는 제 답변대로 수행 할 수 없습니다. –

답변

3

여기에 ZXing 코드를 사용할 수 있습니다.

체크 아웃 DecodeHandler.java

+0

captureActivity는 카메라에서 QR 코드 이미지를 캡쳐 한 후 디코딩 한 후 QR 코드에 저장된 데이터 유형에 따라 결과를 보여줍니다. 예 : 웹 사이트 URL이 QR 코드로 인코딩 된 경우 결과 화면에 해당 URL을 열고 좋아하는 버튼이 있습니다. SD 카드에서 이미지를 읽고 디코딩 한 후 captureActivity를 통해 디코딩하는 경우 zxing과 동일한 방식으로 출력을 처리해야합니다. "결과 결과"에서 출력을 얻으려면 어떻게해야합니까? –

+0

@CoolZeroInfinity u done? 공유 할 수 있습니까? – Erum

1

Mobile Vision API를 사용하여 Image의 QR 코드를 간단하게 디코딩 할 수 있습니다. 매우 정확하며 이미지에 대해 하나 이상의 Qr 코드를 감지 할 수 있습니다.

컴파일 :

당신은 모바일 비전 API 사용 inorder를 다음 라이브러리를 포함해야한다 'com.google.android.gms을 : 플레이 서비스 - 비전 : 9.6.1'

BarcodeDetector detector = 
       new BarcodeDetector.Builder(context) 
         .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE) 
         .build(); 
     if(!detector.isOperational()){ 
      Log.d("QR_READ","Could not set up the detector!"); 
     } 
     Frame frame = new Frame.Builder().setBitmap(bitmap).build(); 
     SparseArray<Barcode> barcodes = detector.detect(frame); 
      Log.d("QR_READ","-barcodeLength-"+barcodes.size()); 
      Barcode thisCode=null; 
      if(barcodes.size()==0){ 
       Log.d("QR_VALUE","--NODATA"); 
      } 
      else if(barcodes.size()==1){ 
       thisCode = barcodes.valueAt(0); 
       Log.d("QR_VALUE","--"+thisCode.rawValue); 
      } 
      else{ 
       for(int iter=0;iter<barcodes.size();iter++) { 
        thisCode = barcodes.valueAt(iter); 
        Log.d("QR_VALUE","--"+thisCode.rawValue); 
       } 
      }