Новости   iANPR   IPPlateReader   OMarks   Решения   Онлайн   Исследования   О компании  

Как пользоваться SDK для бесплатной генерации DataMatrix?

Мы предлагаем вам абсолютно бесплатный SDK для кодирования DataMatrix! Это библиотека Dll, которую вы можете встраивать в любые свои решения операционных систем семейства Windows. Библиотеку можно скачать здесь DataMatrix Encode SDK.

Использование достаточно простое. Копируете библиотеку DataMatrixEncode.dll в каталог с вашей программой, а затем динамически ее подключаете. В каталоге "sample" архива с библиотекой приведен пример использования на языке C/C++. Первоначально подключите библиотеку:

HINSTANCE dllInstance=LoadLibrary("DataMatrixEncode.dll");

После подключения необходимо получить доступ к функции кодирования:

int (__stdcall *EncodeDataMatrix)(char* ,int, unsigned char* ,long *,int ,int ,int ,int );
(FARPROC&)EncodeDataMatrix = GetProcAddress(dllInstance,"EncodeDataMatrix");

В библиотеке есть две функции кодирования: EncodeDataMatrix (возвращает 24-битное изображение, EncodeDataMatrix1Bit (возвращает монохромное изображение). Формат изображений BMP.
Формат обеих функций одинаковый:

int EncodeDataMatrix(
	char* EncodeText,
	int EncodeSize,
	unsigned char* out_bitmap,
	int *bufer_size,
	int SizeCell,
	int Code,
	int Mode,
	int SizeNum
);

Параметры:
EncodeText – строка для кодирования, оканчивающаяся нулем.
EncodeSize – должно быть 0, пока не используется.
out_bitmap – буфер для выходного изображения.
bufer_size – размер буфера.
SizeCell – размер ячейки кода.
Code – тип кода (0).
Mode – режим кодирования (0-5), описание режимов можно посмотреть функцией QueryMode.
SizeNum – размер, 0 – авто, либо устанавливается по желанию пользователя (режимы смотреть в функции QuerySize).
Возвращаемые значения:
0 – при удачном кодировании;
1 – неправильный номер кода;
1000 и большие значения – ошибка кодирования;
-1 – неверный размер ячейки (меньше 1);
3 - нет места в принимающем буфере, в этом случае в bufer_size записывается необходимый размер буфера.

Пример использования функции:

long s=10000000;
BYTE* out_bitmap=new BYTE[s];
lstrcpy(buf,"Hello World!!! And 1234567890");
if (EncodeDataMatrix(buf,strlen(buf),out_bitmap,&s,4,0,5,0)!=0)
{
	printf("Encoding error!");
	delete out_bitmap;
	return 5;
}

Запись в BMP файл:

FILE *f;
f=fopen("out.bmp","wb");
if (f!=NULL)
{
	fwrite(out_bitmap,1,s,f);
	fclose(f);
	printf("Encoding...OK!");
}
else printf("Can not write bmp file!");
delete out_bitmap;

Ну и собственно результат кодирования:

Можете проверить его с помощью программы VidikonReader. Если вы заметили какие-то ошибки в работе библиотеки, то пишите нам.


(C)2012-2017. IntBuSoft Ltd
support@intbusoft.com