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:
90
90
extern Handle NotKillPointed;
91
91
extern Handle ObvKillLines;
93
BOOL fl_not_kill_pointed;
97
BOOL AddLenLineMas(MyLine** ppLines,int& len,int add);
98
BOOL InitLineMas(MyLine** ppLines,int len);
93
Bool fl_not_kill_pointed;
97
Bool AddLenLineMas(MyLine** ppLines,int& len,int add);
98
Bool InitLineMas(MyLine** ppLines,int len);
99
99
void DelLineMas(MyLine *masp);
100
BOOL DelOneHorLine(Word8* pmasp,const int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10);
101
BOOL DelOneVerLine(Word8* pmasp,const int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10);
102
BOOL DelLineFromInside(Word8* pmasp,const int bytewide,int num_str,CLINE_handle hline);
100
Bool DelOneHorLine(uchar* pmasp,const int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10);
101
Bool DelOneVerLine(uchar* pmasp,const int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10);
102
Bool DelLineFromInside(uchar* pmasp,const int bytewide,int num_str,CLINE_handle hline);
106
106
Bool32 DeleteLines(Handle hCPage,void* phCLINE, const char* ImageDelLines)
108
// LDPUMA_ConsoleN("�������������� ������� ������������ �������� �����");
108
// LDPUMA_ConsoleN("Активизируется функция тривиального удаления линий");
109
109
int time=clock();
110
110
CLINE_handle* pCLINE=(CLINE_handle*)phCLINE;
111
111
MyLine* pHorLines=NULL;
126
126
CIMAGEIMAGECALLBACK cbk;
127
127
CIMAGEIMAGECALLBACK cbk1;
128
128
// LinesTotalInfo lti;
129
// LineInfo linfo; // ����������, ��� � ����
130
PAGEINFO info = {0}; // �������� ��������
129
// LineInfo linfo; // собственно, что и надо
130
PAGEINFO info = {0}; // Описание страницы
131
131
// Handle pBlock;
137
Word8 ImageName[CPAGE_MAXNAME];
138
// �������� PAGEINFO ������� ��������
137
uchar ImageName[CPAGE_MAXNAME];
138
// Получаем PAGEINFO текущей страницы
139
139
GetPageInfo(hCPage,&info);
141
// �������� � pImage �� PInfo ��������� �� �����������,
142
// ��������� �� ���������
141
// Копируем в pImage из PInfo указатель на изображение,
142
// связанное со страницей
143
143
for(i=0;i<CPAGE_MAXNAME;i++)
144
144
ImageName[i]=info.szImageName[i];
150
150
cbk1.CIMAGE_ImageRead = cbk.CIMAGE_ImageRead;
151
151
cbk1.CIMAGE_ImageClose = cbk.CIMAGE_ImageClose;
153
if (!CIMAGE_WriteCallbackImage((Word8*)ImageDelLines,cbk1))
153
if (!CIMAGE_WriteCallbackImage((uchar*)ImageDelLines,cbk1))
159
if(!CIMAGE_ReadDIB((Word8*)ImageDelLines,&lpDIB,1))
159
if(!CIMAGE_ReadDIB((uchar*)ImageDelLines,&lpDIB,1))
161
CIMAGE_DeleteImage((Word8*)ImageDelLines);
161
CIMAGE_DeleteImage((uchar*)ImageDelLines);
165
165
CTDIB* ctdib = new CTDIB;
168
CIMAGE_DeleteImage((Word8*)ImageDelLines);
168
CIMAGE_DeleteImage((uchar*)ImageDelLines);
173
173
const int bytewide=ctdib->GetLineWidthInBytes();
174
174
int num_str=ctdib->GetLinesNumber ();
175
175
// int bytesize=ctdib->GetImageSizeInBytes ();
176
Word8* pmasp=(Word8*)(ctdib->GetPtrToBitFild());
177
// Word8* pos=(Word8*)(ctdib->GetPtrToPixel (pHorLines[0].begx,pHorLines[0].begy));
178
// Word8* pos2=(Word8*)(ctdib->GetPtrToPixel (pHorLines[0].begx,pHorLines[0].begy));
176
uchar* pmasp=(uchar*)(ctdib->GetPtrToBitFild());
177
// uchar* pos=(uchar*)(ctdib->GetPtrToPixel (pHorLines[0].begx,pHorLines[0].begy));
178
// uchar* pos2=(uchar*)(ctdib->GetPtrToPixel (pHorLines[0].begx,pHorLines[0].begy));
180
Word32 size_line_com=sizeof(LINE_COM);
180
uint32_t size_line_com=sizeof(LINE_COM);
181
181
CLINE_handle hline;
183
183
if(LDPUMA_Skip(ObvKillLines))
1588
1588
CIMAGEIMAGECALLBACK cbk;
1589
1589
CIMAGEIMAGECALLBACK cbk1;
1591
if (!CIMAGE_GetCallbackImage((Word8*)ImageDelLines,&cbk))
1591
if (!CIMAGE_GetCallbackImage((uchar*)ImageDelLines,&cbk))
1594
1594
cbk1.CIMAGE_ImageOpen = cbk.CIMAGE_ImageOpen;
1595
1595
cbk1.CIMAGE_ImageRead = cbk.CIMAGE_ImageRead;
1596
1596
cbk1.CIMAGE_ImageClose = cbk.CIMAGE_ImageClose;
1598
if (!CIMAGE_WriteCallbackImage((Word8*)ImageDelLines,cbk1))
1598
if (!CIMAGE_WriteCallbackImage((uchar*)ImageDelLines,cbk1))
1604
if(!CIMAGE_ReadDIB((Word8*)ImageDelLines,&lpDIB,1))
1604
if(!CIMAGE_ReadDIB((uchar*)ImageDelLines,&lpDIB,1))
1606
CIMAGE_DeleteImage((Word8*)ImageDelLines);
1606
CIMAGE_DeleteImage((uchar*)ImageDelLines);
1610
1610
CTDIB* ctdib = new CTDIB;
1613
CIMAGE_DeleteImage((Word8*)ImageDelLines);
1613
CIMAGE_DeleteImage((uchar*)ImageDelLines);