이 프로그램은 아스키로 된 파일을 인풋으로 하여 pdf417바코드를 만들어 낸다. 문자, 숫자, 바이트(바이너리??) 압축을 지원한다. 바코드 이미지는 포스트스크립과 pbm파일로 생성된다.
출처 : http://sourceforge.net/projects/pdf417encode
Pdf417decode.c can decode PDF417 barcodes from a pbm file. The program is capable of decoding all three compaction modes (binary, text and numeric), and performs Reed-Solomon error correction.
Pdf417decode.c 는 pbm파일에서 PDF417 바코드를 인식할 수 있다. 이 프로그램은 바이너리, 텍스트, 숫자의 3가지 압축 모드에서 모두 사용될 수 있고 Reed-Solomon 에러 보정을 수행한다. ㅡㅡ;;; 맞나?
출처 : http://sourceforge.net/projects/pdf417decode
추가~~~
바코드를 쉽게 제작해 주는 툴로는 Barcode Rendering Framework라는 프로그램이 있습니다.
지원되는 바코드 목록
* Code 11 with or without checksum
* Code 25 standard/interleaved with or without checksum
* Code 39 with or without checksum
* Code 93 with checksum only
* Code 128 with checksum only
* Code EAN 13 with checksum only
* Code EAN 8 with checksum only
* Code PDF417 2D with checksum (alpha version)
라이센스 : http://barcoderender.codeplex.com/license
다운로드 방법 : 아래 링크에서 ZenBarcode2030Release.zip를 클릭하세요.
http://www.codeplex.com/BarcodeRender/Release/ProjectReleases.aspx?ReleaseId=19893#ReleaseFiles
압축을 플고 프로그램을 실행해서 Symbology에서 사용하려는 바코드 코드셋을 선택하고 Barcode Text에 입력하고자 하는 문자를 입력하고 Enter키를 치면 아래 그림과 같이 바코드가 생성이 됩니다.
여기서부터는 다른분이 작성한 글을 퍼온겁니다.
출처 : http://littletrue.egloos.com/3984474
회사일로 2차원 바코드에 대해서 이것저것 점검해 보다가 마침 블로그 포스팅도 뜸하고 해서 정리도 할 겸 글을 써봅니다.
QR Code 에 대한 자세한 내용은 http://en.wikipedia.org/wiki/QR_Code 를 참고하시고, QR Code 란 흔히 말하는 2차원 바코드입니다.
일본에서는 여기저기 잘 활용되고 있고, 구글에서도 AdSense 에 적용해서 신문광고에 써먹는 모양입니다만 우리나라에서는 아직까지는 '말아먹은' 상태입니다.
JISC- Japanese Industrial Standards Committee 에 가셔서 JIS-X-0510 의 spec을 찾아볼 수도 있습니다.
아무튼 이 QR Code 는
Numeric Only : Max 7,089 characters
Alphanumeric : Max 4,296 characters
Binary(8bit) : Max 2,953 characters
만큼의 데이터를 담을 수 있어 일반적인 바코드보다 데이터 저장 용량이 크고 왜곡에 대해서도 강한 특징이 있습니다.
우선 서버에서 1) QR Code를 생성할 수 있어야 하고, 2) 사용자가 업로드한 QR Code 이미지로부터 데이터를 추출할 수 있어야 합니다.
About 2D Code QR Code.com 이 링크를 통해 들어가면 QR 저작툴 두개를 다운로드 받을 수 있는데 Trial 이니 Pro 니 하는걸로 봐서 돈주고 사야하는듯 하고 라이브러리가 아닌 사용자용 제품인 관계로 패스~
뒤지다 보니 http://qrcode.kaywa.com/ 라는 사이트에서 입력값으로 QR Code 이미지를 출력해줍니다. 가입절치 등도 없고 단순히 QR Code 의 이미지 사이즈를 선택하고(S/M/L/XL) URL/Text/Phone Number/SMS 중 하나를 선택한 다음 Generate! 를 누르면 QR Code 이미지가 생성됩니다.
아래의 QR Code 는
RSS URL : http://www.potatosoft.com/tt/rss
라는 문구를 입력하여 만든 QR Code입니다.
permlink 를 제공해 주길래 봤더니
이런 식이네요. 앞으로 QR code 만들때 유용하게 써먹을 수 있을 것 같습니다. ( 그나저나 iPhone 은 언제나와 ㅜ.ㅜ )
몇몇 국내 보급된 휴대폰이 이 QR Code 를 읽을 수 있는 듯 하지만 국내 보급률이 그렇게 높지 않아서 아마 갖고 계신 분이 거의 없을테고, 혹시라도 iPhone 을 쓰시는 분이라면 iMatrix 같은 것들이 나와있기 때문에 곧바로 메세지를 읽어보실 수 있겠군요. ( iPod Touch 는 카메라가 없어서 /애도 )
어쨌든 이미지를 만들었기 때문에 이걸 읽어봐야 할텐데... -_-;; NTT Docomo 에서 QR Factory (http://www.nttdocomo.co.jp/english/service/imode/make/content/barcode/tool/) 라는 QR Code 저작툴을 제공합니다만, 영어/일본어 윈도우만 지원을 하기 때문에 한국어 윈도우를 쓰신다면 설치가 불가능합니다. 그리고 역시 클라이언트 용도이기 때문에 패스~
.NET 용의 라이브러리를 찾을 수 있었지만 회사에서는 주로 C/Java 를 쓰는 관계로 계속 검색을 하다 보니 http://qrcode.sourceforge.jp/ 이런게 있군요.
"Hello World" 라는 내용으로 QR Code 를 만들어 이미지를 저장하고
다운로드받은 java 용 qrcode 예제 중 CUIExample 을 돌려서 읽어봤습니다.
[freesoft@localhost qrcode]$ java -classpath classes example.QRCodeDecoderCUIExample ./qrcode.png
Hello World
[Success] ./qrcode.png
Processed 1 images in 283ms (283 images/sec)
OK: 1 NG: 0
뭐 나름대로 괜찮군요. 하지만 이 오픈소스 라이브러리는 좀 길거나 복잡한 내용이 들어가거나, "안녕하세요? 제 RSS 주소는 http://www.potatosoft.com/tt/rss 입니다" 와 같은 식으로 입력해서 만든 QR Code 는 읽어들이지 못하는데.. 일단 생성시에 오류는 발생하지 않으니 Reader쪽에 문제가 있다고 보는게 맞을 것 같네요.
구글에서 AdSense 에 QR Code 를 적용하니 어쩌니 하는 기사를 봤던 것 같아서 뒤져보니 Google에서 Chart API 의 한 형태로 QR Code를 만들 수 있는 기능을 제공해줍니다. 럭키~
기존의 바코드와 QRCode 를 모두 읽을 수 있는 java 오픈소스 ZXing 도 제공해주는군요. (http://code.google.com/p/zxing/)
... 모든 걸 원점에서 다시 시작해봅니다.
Google Chart API 로 "My RSS URL is http://www.potatosoft.com/tt/rss" 를 QR Code 로 만들어 봤습니다.
입력은
http://chart.apis.google.com/chart?cht=qr&chl=My%20RSS%20URL%20is%20http://www.potatosoft.com/tt/rss&chld=H|2&chs=144
이런식으로 하면 되구요 EC Level 을 H 로, 차트 사이즈는 144pixel 로 설정했습니다.
보이기는 이런 식으로 보이게 되지요.
ZXing 은 android / j2se / j2me 등 다양한 환경의 코드를 제공해주는데 우선 core 라는 공통 라이브러리를 컴파일해야 하고, 이를 위해서는 WTK를 설치해야 합니다. ( 공통이면 모바일이든 웹이든 상관없이 돌아가 줘야 하는거 같은데 WTK에 의존한다는게 좀 -_-;; )
qrcode.sourceforge.jp 는 간단한 QR Code 만 가능했지만, 구글이 제공하는 chart api 로 QR Code 를 만들었으니 당연히 구글에서 제공하는 것으로 디코딩도 되리라는 믿음으로 WTK 를 설치하고 Eclipse 에서 core 를 컴파일 한 다음(build.xml 에 WTK-home 경로 지정), j2se 쪽 gui runner 를 실행시키기 위해 core.jar 를 library build 에 추가하고 실행해봅니다.
Google Chart API로 만든 QRCode 이미지를 파일로 저장한 다음 ZXing 에서 해당 파일을 읽어보니
깔끔하게 디코딩이 자~ㄹ 됩니다. QR Code 만들기 위해 상용 패키지 사서 쓰지 않아도 되겠군요. 우왕국~
깔끔한 이미지는 잘 읽는데, 그럼 실제 사용자들이 찍어 올리는 QR Code는 어느정도 인식을 할지 궁금해져서 테스트를 해봤습니다.
QR Code가 가장 널리 쓰이는 곳이 아무래도 일본이다 보니 이미지 대부분이 일본쪽 것들이군요.
실패 -_-;; 이런 건 인식 못하는군요. 옆에 이미지를 잘라내고 깔끔하게 만들어서 먹여줘봤습니다.
역시 실패 -_-;
웹검색을 하다 보니 이런 이미지도 있더군요. 그냥 해보면 당연히 에러가 나겠지 라는 새각으로 가운데 부분만 잘라서 인식시켜 보았습니다.
우왕 성공~!! 어떻게든 QR Code 의 흰색과 검은색만이 보이도록 사진을 찍어야 하는군요.
... 라고 생각하다가 이미지 패턴인식 형태이기 때문에 색깔이 문제가 아닐수도 있겠다 싶어 원본 이미지를 그대로 인식시켜 보았습니다.
우왕 -_-;; 이런것도 인식되는군요.
간단한 테스트였지만 이걸 만약에 사진을 찍어서 MMS로 전송한 다음 뭔가의 내용을 서버에서 처리하여 다시 사용자에게 SMS로 보내준다든지 하면 인식률 때문에 사용자들이 서비스를 쓰지 않을 것 같고, 사용자의 단말기에 QR Code 리더가 붙어있어야만 서비스가 활성화 될 가능성이 높아 보입니다. 그것도 별도의 리더를 붙인다든가 하는 게 아니라 휴대폰 카메라로 찍으면 바로 인식되는 형태의 built-in 으로 제공되어야 할 것 같군요.
Android 를 적용한 구글폰이나 iPhone 을 언제까지나 기다릴 순 없고.. -_-;;
QR Code 의 주요 활용 방안 중 하나라고 한다면 리더기로 해당 QR Code를 읽으면 곧바로 단말기가 무선인터넷 접속을 해서 관련 정보를 읽는 등의 용도로 쓰일 수 있는데(쿠폰을 바로 받는다든지), 국내의 이통사 3사에서는 아직까지 무선인터넷 요금을 내리실 생각이 별로 없기 때문에 향후로도 QR Code 가 활성화될 가능성은 거~의 없다고 봐도 되겠습니다.
국내 이통사에서도 KTF의 핫코드, SKT의 네이트코드, LGT의 이지코드 ( 그나마 KTF가 이름 짓는데 좀 창의적이고, SKT는 주로 NATE OOO, LGT는 이지OOO 이런 식 ) 를 이미 시범서비스중인 것으로 알고 있습니다만 이런저런 문제로 상용화는 이루어지지 않고 있다고 합니다. ( http://www.dt.co.kr/contents.html?article_no=2008081402012060745001 )
뭐 그 이유는 위에서 이야기한대로 QR Code를 읽을 수 있는 단말기의 부재와 더불어 요금문제가 가장 크게 다가올 것 같군요.
그나마 현재로써 가장 가능성이 있는건 LGT의 OZ 서비스일텐데... QR Code 무제한 요금제 같은거 도입하고 단말기에 리더 집어넣어서 활성화 시켜 볼 생각은 없으신가요?
특히 최근의 한우/멜라민 득 각종 식품파동과 관련해서 대형마트와 공조해서 차별화된 서비스를 내어놓아도 좋을 듯 합니다만...
이건 뭐 관련 서비스를 만들어봐야 리더기 보급이 되어있지 않으니 말짱 헛일이군요 쯥~
# by S2nNAMU | 2008/11/18 16:45 | 바코드 & OCR
퍼온건 여기까지입니다.