35.ZXing 바코드 라이브러리
목차
ZXing 바코드 라이브러리#
현재 최신 버전 1.4
Multi-format 1D/2D barcode image processing library with clients for Android, Java
공식 사이트
http://code.google.com/p/zxing/
zxing 이라는 거..
휴대폰 카메라랑 바코드 구독 장치를 서버에 연결하지 않고 사용.
오른쪽 상단에 다운 받을수 있음
지원 바코드 종류
- UPC-A and UPC-E
- EAN-8 and EAN-13
- Code 39
- Code 128
- QR Code
- Data Matrix ('alpha' quality)
- PDF 417 ('alpha' quality)
- ITF
데자와 캔 음료
8801097481015
Format: EAN_13
Type: PRODUCT
Getting Started
http://code.google.com/p/zxing/wiki/GettingStarted
사용하려면 이 문서를 먼저 봐야 할듯 함
JavaDoc
http://zxing.org/w/docs/javadoc/index.html
SVN 경로
http://zxing.googlecode.com/svn/
카메라를 이용한 바코드 인식 문의 드립니다..
http://www.androidpub.com/11653
-안드로이드에서 바코드 인식 방법
직접 만들려면, 이미지 처리해서 깨끗한 바코드 이미지로 변환하는 방법, 바코드 타입별로 분석하는 방법을 공부해야 합니다.
-동영상
바코드를 찍어서 바로 구글 안드로이드 마켓에 연결하여, 해당 제품을 검색할 수 있게 한다.
http://www.youtube.com/watch?v=gu6k4dFtf-U
ZXing 설정 순서#
아무튼 순서 정리!
zxing 에서 core를 ant 를 이용하여 컴파일
core.jar 이 생성되는데 이걸 프로젝트에 추가 해 준다.
프로젝트를 선택하고 Properties 설정 화면으로 간다.
Java Build Path 로 이동
Libraries 탭 선택
Add External JARs버튼 클릭 해서 core.jar 를 추가 해 준다.
svn에서 받은 소스중 androidtest 프로젝트를 참고 하여 작성 한다
JAR lib 파일
컴파일한 파일 첨부
이클립스에 라이브러리 추가 방법
우선 위의 라이브러리 파일을 프로젝트 폴더에 lib 폴더를 만들어 복사 해 둔다. (다른 폴더에 두어도 상관은 없으나 같은 프로젝트 폴더에 넣는것이 관리상 편함)
프로젝트 에서 마우스 오른쪽 버튼 클릭 -> Properties
Java Build Path -> Libraries -> Add Class Folder(lib 폴더 체크 해서 추가) -> Add Jars -> lib/zxing1.4core.jar 추가
ZXing 사용 순서#
여러가지 방법이 있으나 기본 기능인 바코드찍는 화면과 찍고 나면 결과 값을 받는 기능을 적음
아래의 코드가 실행되면 바코드 찍는 화면이 나타난다. (기본적으로 Activity를 띄울 때 startActivity를 사용하나 결과값을 받기 위해 startActivityForResult 를 사용한다.
-
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
-
startActivityForResult(intent, 0);
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent intent)
- {
- if (requestCode == 0)
- {
- if (resultCode == RESULT_OK)
- {
- String contents = intent.getStringExtra("SCAN_RESULT");
- String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
- showDialog(R.string.result_succeeded, "Format: " + format + "\nContents: " + contents);
- }
- else if (resultCode == RESULT_CANCELED)
- {
- showDialog(R.string.result_failed, getString(R.string.result_failed_why));
- }
- }
- }
- private void showDialog(int title, String message)
- {
- AlertDialog.Builder builder = new AlterDialog.Builder(this);
- builder.setTitle(title);
- builder.setMessage(message);
- builder.setPositiveButton("OK", null);
- builder.show();
- }
How to scan a barcode from another Android application via Intents
http://code.google.com/p/zxing/wiki/ScanningViaIntent
ZXingTestActivity#
androidtest: Android test app
이 프로젝트의 소스를 참고해보면 좋다.
참고#
ANT를 먼저 사용 할 수 있어야 함
환경변수에 ANT관련 설정 해 주어야 함
ANT를 사용하려면 javac를 사용해야 되기 때문에 환경변수에서 JAVA 경로도 지정해 주어야 됨
build.xml:64: taskdef class com.android.ant.SetupTask cannot be found 오류#
build.properties 에 android-home 경로 지정 수정해 주어야 됨
-> 안되네 -_-; 그러면 환경변수에서 android lib 경로를 직접 지정
build.xml:75: Unable to resolve target 'Google Inc.:Google APIs:4'#
또 다른 오류 발생 -_-; 짜증
기타#
ZXing 1.3 으로 해보니
tools/aapt.exe 가 없다고 안됨 -_-; 이건 언제적 버전에 있던 프로그램이지;;
ZXing 1.4는 안드로이드 1.6 이상은 되어야 쓸 수 있는 코드들이 다수 보임
ZXing 1.3을 사용해보고 있음
여기 있는 예제는 1.4에서도 잘 됨. 단 Android SDK 1.6에서만 되는 코드 있는 예제는 1.5에서 안됨.
History
Last edited on 09/20/2010 08:59 by 푸른
Comments (6)
좋은 예제 감사합니다. 그런데 다름이 아니오라 혹시 core.jar 컴파일 하신거 받을수 있을까요? 전 계속해서 에러가 발생해서 컴파일이 안되던데 계속해서 javac를 못찾는다는 에러가 나더군요; 환경변수에 추가하고 build.xml 을 수정을 하여도 컴파일이 안되는;;;
01/11/2010 16:33컴파일한 파일을 첨부해 두었습니다. 아마 path 지정이 잘못된거 같은데 다시 확인해 보세요.
01/11/2010 21:59안녕하세요. Zxing을 이용해 간단한 어플하나 만들어보려고 하는데 많은 어려움을 겪고 있습니다. ant를 설치 하려는데 계속 Buildfile: build.xml does not exist! Build failed 메세지가 뜨네요. 어떻게 해야 하는지 좀 알려주실수 있나요? 괜찮으시다면 이메일 연락 가능한지 궁금합니다.
03/06/2010 18:37@제냐 build.xml does not exist! 메시지는 build.xml 를 못찾아서 그러는거 같은데 build.xml 파일이 제 위치에 있는지 확인해 보세요.
03/09/2010 21:47C++ library 도 있나요?
07/23/2010 14:58@topspin : http://code.google.com/p/zxing/source/browse/trunk/cpp/magick/src/example.cpp 이걸 한번 참고해 보세요.
07/23/2010 18:32