Build Zint static library on windows
라이브러리는 정상적으로 동작을 하였다.
사용법은 설명 보다는 코드로 남기는 것이 이해가 쉬울 것 같아 코드로 남긴다.
struct zint_symbol *pZintSymbolStruct;
// Zint symbol 생성
pZintSymbolStruct = ZBarcode_Create();
if (pZintSymbolStruct != nullptr)
{
TRACE("Symbol successfully created!\n");
// 생성할 바코드 문자열. 최대 128자
unsigned char szBuf[ZINT_TEXT_SIZE] = "created barcode by Zint\0";
// 주어진 문자열로 바코드 생성.
// 문자열 길이를 0으로 입력하면 입력된 문자열의 첫번째 Null 까지 Encode.
ZBarcode_Encode(pZintSymbolStruct, szBuf, 0);
// 생성한 바코드를 파일로 저장.
// 바코드 타입을 설정하지 않으면 기본으로 Code 128이 설정된다.
// Symbol 생성시 기본 출력 파일 이름은 out.png
// 각도는 0, 90, 180, 270 를 입력할 수 있다.
// 그 이외의 각도를 넘기면 예외가 발생한다.
ZBarcode_Print(pZintSymbolStruct, 0);
// Symbol 초기화
ZBarcode_Clear(pZintSymbolStruct);
// Barcode를 QRCode로 지정
pZintSymbolStruct->symbology = BARCODE_QRCODE;
// 출력 파일은 out2.png로 지정
strcpy_s(pZintSymbolStruct->outfile, FILENAME_MAX, "out2.png");
// 바코드로 생성할 문자열 설정
strcpy_s((char*)szBuf, ZINT_TEXT_SIZE, "한글 바코드, 韓字!");
// 인코딩과 파일 저장을 한번에 수행
ZBarcode_Encode_and_Print(pZintSymbolStruct, szBuf, 0, 0);
// Symbol 초기화
ZBarcode_Clear(pZintSymbolStruct);
pZintSymbolStruct->symbology = BARCODE_QRCODE;
strcpy_s((char*)szBuf, ZINT_TEXT_SIZE, "메모리에 바코드 생성");
// 바코드를 인코딩하여 메모리에 저장
// 바코드는 pZintSymbolStruct->bitmap 에 저장
ZBarcode_Encode_and_Buffer(pZintSymbolStruct, szBuf, 0, 270);
// 메모리에 저장된 바코드 이미지를 이용하여 OpenCV Mat 생성
cv::Mat matBarcode = cv::Mat(
pZintSymbolStruct->bitmap_height
, pZintSymbolStruct->bitmap_width
, CV_8UC3
, pZintSymbolStruct->bitmap);
// 화면에 보여주기
cv::namedWindow("Barcode");
cv::imshow("Barcode", matBarcode);
}
// Symbol 삭제
ZBarcode_Delete(pZintSymbolStruct);
zint_symbol 구조체에 여러 설정을 하여 바코드를 생성할 수 있다.
설정할 수 있는 항목은 여백, 배경색, 전경색, 테두리 등을 설정할 수 있다.
자세한 설정 방법은 Zint 매뉴얼(http://www.zint.org.uk/Manual.aspx?type=p&page=1)에 설명되어 있다.
No comments :
Post a Comment