2
2
Copyright (c) 1993-2008, Cognitive Technologies
5
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
8
* ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
���� ����������� �� ��������� �����, ���� ������ ������� � �����������
11
* ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
������ ����������, ������������ ��� ���������������, ������ �����������
13
��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
����������� ����� �� ��������.
15
* �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
���� ������������ � �������� �������� ��������� �/��� �����������
17
���������, ���������� �� ���� ��, ��� ���������������� �����������
20
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
������������� ������, ��������� � �������������� ��� ���������� ����������
27
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
5
Разрешается повторное распространение и использование как в виде исходного кода,
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
8
* При повторном распространении исходного кода должны оставаться указанное
9
выше уведомление об авторском праве, этот список условий и последующий
11
* При повторном распространении двоичного кода в документации и/или в
12
других материалах, поставляемых при распространении, должны сохраняться
13
указанная выше информация об авторском праве, этот список условий и
14
последующий отказ от гарантий.
15
* Ни название Cognitive Technologies, ни имена ее сотрудников не могут
16
быть использованы в качестве средства поддержки и/или продвижения
17
продуктов, основанных на этом ПО, без предварительного письменного
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
60
extern void init_diskrim(Word8* raster,Int16 height ,Int16 width);
61
extern Int16 Diskrim(Word8 let,Word8* raster,
62
Int16 D_X,Int16 dx,Int16 dy,Word8, Int16 );
63
extern Word8 stick_recog(Word8 let, STICK_CHARS *l, STICK_CHARS *r,
60
extern void init_diskrim(uchar* raster,int16_t height ,int16_t width);
61
extern int16_t Diskrim(uchar let,uchar* raster,
62
int16_t D_X,int16_t dx,int16_t dy,uchar, int16_t );
63
extern uchar stick_recog(uchar let, STICK_CHARS *l, STICK_CHARS *r,
65
extern Word8 lnhead_stick_center_study(lnhead *lin,Int16 dy,Int16 dx,
65
extern uchar lnhead_stick_center_study(lnhead *lin,int16_t dy,int16_t dx,
66
66
STICK_CHARS *res_left_chars,STICK_CHARS *res_right_chars,
67
67
STICK_SIGNUMS *res_signums);
68
extern Int32 lnhead_stick_get_incline(lnhead *pool ,int dy, int dx );
69
extern void clear_right_bites(Word8 *RASTER, Int16 NWIDTH, Int16 WBYTE, Int16 NHEIGHT);
70
extern Word16 typ_thin_stick(lnhead *lin,Int16 dy,Int16 dx);
71
extern Int16 LeftDistance(Word8 *RASTER, Int16 NWIDTH);
72
extern Int16 RightDistance(Word8 *RASTER, Int16 NWIDTH);
68
extern int32_t lnhead_stick_get_incline(lnhead *pool ,int dy, int dx );
69
extern void clear_right_bites(uchar *RASTER, int16_t NWIDTH, int16_t WBYTE, int16_t NHEIGHT);
70
extern uint16_t typ_thin_stick(lnhead *lin,int16_t dy,int16_t dx);
71
extern int16_t LeftDistance(uchar *RASTER, int16_t NWIDTH);
72
extern int16_t RightDistance(uchar *RASTER, int16_t NWIDTH);
75
75
Bool32 digit_mode = FALSE, dif_adding_mode ;
77
Int32 dif_typ_of_font=0;
77
int32_t dif_typ_of_font=0;
78
78
#include "minmax.h"
80
extern Int16 broken_ii;
81
extern Word8 broken_flag;
82
Word8 cutl_flag, cutr_flag;
80
extern int16_t broken_ii;
81
extern uchar broken_flag;
82
uchar cutl_flag, cutr_flag;
84
DIF_FUNC(void) DIFSetFont( Int32 typ_of_font)
84
DIF_FUNC(void) DIFSetFont( int32_t typ_of_font)
86
86
dif_typ_of_font=typ_of_font;
90
90
DIF_FUNC(Bool32) DIFInit( RecRaster *r, Bool32 broken, Bool32 broken_II,
91
91
Bool32 cut_left, Bool32 cut_right)
93
broken_ii = (Int16)(broken_II!=0);
94
broken_flag=(Word8)broken;
95
cutl_flag=(Word8)(cut_left!=0);
96
cutr_flag=(Word8)(cut_right!=0);
97
init_diskrim(r->Raster,(Int16)r->lnPixHeight,(Int16)r->lnPixWidth);
93
broken_ii = (int16_t)(broken_II!=0);
94
broken_flag=(uchar)broken;
95
cutl_flag=(uchar)(cut_left!=0);
96
cutr_flag=(uchar)(cut_right!=0);
97
init_diskrim(r->Raster,(int16_t)r->lnPixHeight,(int16_t)r->lnPixWidth);
333
DIF_FUNC(Int16) DIFGetErr(void)
333
DIF_FUNC(int16_t) DIFGetErr(void)
339
DIF_FUNC(Int16) DIFLeftDistance(Word8 *RASTER, Int16 NWIDTH)
339
DIF_FUNC(int16_t) DIFLeftDistance(uchar *RASTER, int16_t NWIDTH)
341
341
return LeftDistance(RASTER, NWIDTH);
344
DIF_FUNC(Int16) DIFRightDistance(Word8 *RASTER, Int16 NWIDTH)
344
DIF_FUNC(int16_t) DIFRightDistance(uchar *RASTER, int16_t NWIDTH)
346
346
return RightDistance(RASTER, NWIDTH);
349
DIF_FUNC(void) DIFClearRightZone(Word8 *RASTER, Int16 NWIDTH, Int16 WBYTE, Int16 NHEIGHT)
349
DIF_FUNC(void) DIFClearRightZone(uchar *RASTER, int16_t NWIDTH, int16_t WBYTE, int16_t NHEIGHT)
351
351
clear_right_bites(RASTER, NWIDTH, WBYTE, NHEIGHT);