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 프로젝트를 참고 하여 작성 한다
컴파일한 파일 첨부
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();
- }
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에서 안됨.
2010-01-11 21:59 에 김준호님이 마지막으로 수정
댓글 (6)
좋은 예제 감사합니다. 그런데 다름이 아니오라 혹시 core.jar 컴파일 하신거 받을수 있을까요? 전 계속해서 에러가 발생해서 컴파일이 안되던데 계속해서 javac를 못찾는다는 에러가 나더군요; 환경변수에 추가하고 build.xml 을 수정을 하여도 컴파일이 안되는;;;
2010-01-11 16:33컴파일한 파일을 첨부해 두었습니다. 아마 path 지정이 잘못된거 같은데 다시 확인해 보세요.
2010-01-11 21:59안녕하세요. Zxing을 이용해 간단한 어플하나 만들어보려고 하는데 많은 어려움을 겪고 있습니다. ant를 설치 하려는데 계속 Buildfile: build.xml does not exist! Build failed 메세지가 뜨네요. 어떻게 해야 하는지 좀 알려주실수 있나요? 괜찮으시다면 이메일 연락 가능한지 궁금합니다.
2010-03-06 18:37@제냐 build.xml does not exist! 메시지는 build.xml 를 못찾아서 그러는거 같은데 build.xml 파일이 제 위치에 있는지 확인해 보세요.
2010-03-09 21:47C++ library 도 있나요?
2010-07-23 14:58@topspin : http://code.google.com/p/zxing/source/browse/trunk/cpp/magick/src/example.cpp 이걸 한번 참고해 보세요.
2010-07-23 18:32