프로그램

바코드 프로그램 만들기 1. - 바코드 관련 기본 정보 및 바코드 규약. Bar Code Specfication for EAN-13

(주)CKBcorp., 2012. 2. 17. 21:24
반응형

이전에, 바코드 관련 프로그램을 만들어 보려 한 일이 있었는데, 로직은 어려울 게 없는데 바코드 원리를 몰라서 알아본 적이 있었다. 
이번에 다시 만들 일이 있어, 관련 내용을 좀 정리해 놓는다.

기본 개념 1 :
http://www.gs1kr.org/ean_video/swf/main.html 
대한상공회의소 에서 제공하는 바코드 관련 내용. 동영상으로 잘 되어 있어, 알기 쉽고 개념 잡기 좋다.
단, 바코드 이미지를 생성하기 위한 논리적 내용을 설명하는 것은 아니라서, 이 내용은 다시 알아봐야 하는데, 그 이외의 모든 걸 알 수 있어 좋다. 더구나 대한상공회의소 에서 바메이트 Bar Mate 프로그램 이라고 바코드를 생성하는 프로그램을 무료( 회원가입필요 )로 제공한다.( 심지어 바코드 테스트 프로그램까지 제공 ) 
 
기본 개념 2 :

1. 바와 공백에 대해 기초적인 정보를 알려주는 곳이 없어서 여기저기 뒤져봤었는데, 의외로 wiki가 도움이 되었다.
정말 위키는 인류의 보물같아. 위키 - 바코드
2. 대한민국 수퍼 등에서 쓰이는 상품 코드는 KAN 인데, 간단히 말하면 EAN-13코드라고 보면 된다. 그럼, 위키에서 설명한 EAN-13 규약은 "연속 continus " 바코드에 "여러 폭 many-width" 바코드다. 고로, 우리가 알아야 할 것은 다음과 같다.

11. bar1개의 폭 ( mm )
12. bar -> 0x01. space ->  0x00 인지, 그 반대인지.
13. bar code 생성 규칙.

이밖에도 실제로 프린팅해서 쓰려면 공백의 위치, 바의 전체 높이 등이 필요한데, 이런 자질구레한(?) 정보들은 모두  대한상공회의소 에 있다. ( 이것도 언제 함 시간내서 정리해 볼까? ) 

EAN-13 바코드는 "여러 폭" 바코드이므로, 바코드의 바의 단위 넖이( 이를 "모듈" 이라고 하는데, 역시 위키에 나와있다.) 를 알면 된다. EAN-13 제원 에 나와 있는데, 결론적으로는 모듈의 폭은 0.26mm ( 원본의 80% 배율 ) ~ 0,66mm (원본의 200% 배율 ) 이면 된다.


( 단위는 mm )

 

12.번, 13번에 대해서는 http://barcode-coder.com/en/ean-13-specification-102.html 에서 얻을 수 있다. 아주 잘 설명해 놨다. 이 사이트에는 값을 입력하면 해당 값에 맞는 EAN-13 바코드 이미지를 웹에서 생성해 주므로, 이를 통해 자신이 만든 바코드 이미지가 맞는지 아닌 지 확인할 수 있겠다.


나의 실수 : 음...이걸 왜 적냐면, 나와 같이 생각했던 사람들이 분명히 있을 거라고 생각해서.

1. 바코드는, 표준이 여러 가지다. 
검정색과 하얀색이 이진수 0, 1 을 나타내는 것은 분명하지만, 예를 들면 0x0101 ( space + bar + space + bar ) 가 반드시 십진 숫자 5를 나타내는 것이 아니다. 이것은 바코드 표준에 따라 다르다.
2.  대한상공회의소 의 바코드 개념을 보면 나오는데, 바코드는 그 각각의 규약에 따라 시작값, 종료값 등이 존재한다, 예를 들면 EAN-13의 경우, 시작할 때 101(2) 로 시작하고 끝날 때 101(2) 로 끝나며, 중간값으로 또 01010(2) 를 갖는다. 
3. 결론은, 선입견을 버리고 바코드 표준을 확인하는 것이 정신건강에 좋다.
4. 물론, 바코드 자체는 간단해서 프로그램 짜기도 쉽다.
5. dpi 에 따라 화면 크기를 조정해야 될 지도 모르겠지만, 그거야 모듈 값에 pixel 의 배수를 해 주면 되니까.

자. 이걸로 기본은 됐고... C++용으로 만들어 봐야겠다.



 

반응형