~ubuntu-branches/debian/wheezy/cuneiform/wheezy

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/rstuff/sources/main/deletelines.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk, c-assert.diff, slovenian-slv.diff
  • Date: 2011-01-26 21:53:07 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110126215307-62x61mcesr607qb7
Tags: 1.0.0+dfsg-2
* Upload to unstable.
* Explicitly build-depend on pkg-config. Thanks to Stefano Rivera for the
  bug report.
* Add Vcs-* fields.
* Use the standard C assert() macro, rather than custom Cuneiform one.
  [c-assert.diff]
* Pass CFLAGS, CXXFLAGS and LDFLAGS (get from dpkg-buildflags) to cmake
  (closes: #608345). Thanks to Sami Liedes for the bug report.
  + Build depend on dpkg-dev (>= 1.15.7).
* Pass --parallel to dh.
  + Bump debhelper minimum version to 7.4.10.
* Update debian/copyright to the latest DEP-5 version.
* Bump year in debian/copyright.
* Explicitly link to GraphicsMagick (rather than via the ImageMagick
  compatibility layer).
* Don't ship /usr/lib/cuneiform/*.so symlinks. These libraries are
  considered private, at least until #598616 is fixed.
* Rename some private variables in debian/rules to make them lowercase.
* Update patch headers.
* Provide proper ‘build-arch’ and ‘build-indep’ targets in debian/rules.
* Document input format in the manual page (closes: #572061). Thanks to
  Janusz S. Bień for the bug report.
* Use ‘slv’ (rather than ‘slo’) as language code for Slovenian.
  [slovenian-slv.diff]
* Fix package description: Slovenian is supported, Slovak is not.
* Improve documentation of the language (-l) option (closes: #602512).
  Thanks to Jari Aalto for the bug report.
* Install reasons file for vrms.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Copyright (c) 1993-2008, Cognitive Technologies
3
3
All rights reserved.
4
4
 
5
 
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
 
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
7
 
 
8
 
      * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
 
        ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
10
 
        ����� �� ��������.
11
 
      * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
 
        ������ ����������, ������������ ��� ���������������, ������ �����������
13
 
        ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
 
        ����������� ����� �� ��������.
15
 
      * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
 
        ���� ������������ � �������� �������� ��������� �/��� �����������
17
 
        ���������, ���������� �� ���� ��, ��� ���������������� �����������
18
 
        ����������.
19
 
 
20
 
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
 
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
 
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
 
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
 
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
 
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
 
������������� ������, ��������� � �������������� ��� ���������� ����������
27
 
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
 
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
 
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
 
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
 
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
 
5
Разрешается повторное распространение и использование как в виде исходного кода,
 
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
 
7
 
 
8
      * При повторном распространении исходного кода должны оставаться указанное
 
9
        выше уведомление об авторском праве, этот список условий и последующий
 
10
        отказ от гарантий.
 
11
      * При повторном распространении двоичного кода в документации и/или в
 
12
        других материалах, поставляемых при распространении, должны сохраняться
 
13
        указанная выше информация об авторском праве, этот список условий и
 
14
        последующий отказ от гарантий.
 
15
      * Ни название Cognitive Technologies, ни имена ее сотрудников не могут
 
16
        быть использованы в качестве средства поддержки и/или продвижения
 
17
        продуктов, основанных на этом ПО, без предварительного письменного
 
18
        разрешения.
 
19
 
 
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
 
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
 
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
 
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
 
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
 
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
 
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
 
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
 
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
 
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
 
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
 
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
32
32
 
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;
92
92
 
93
 
        BOOL fl_not_kill_pointed;
94
 
        BOOL dphNotTestAlik;
95
 
 
96
 
 
97
 
BOOL AddLenLineMas(MyLine** ppLines,int& len,int add);
98
 
BOOL InitLineMas(MyLine** ppLines,int len);
 
93
        Bool fl_not_kill_pointed;
 
94
        Bool dphNotTestAlik;
 
95
 
 
96
 
 
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);
103
103
 
104
104
 
105
105
 
106
106
Bool32 DeleteLines(Handle hCPage,void* phCLINE, const char* ImageDelLines)
107
107
{
108
 
//      LDPUMA_ConsoleN("�������������� ������� ������������ �������� �����");
 
108
//      LDPUMA_ConsoleN("Активизируется функция тривиального удаления линий");
109
109
        int time=clock();
110
110
        CLINE_handle* pCLINE=(CLINE_handle*)phCLINE;
111
111
    MyLine* pHorLines=NULL;
115
115
        int len_hor_mas=0;
116
116
        int len_ver_mas=0;
117
117
        int add_len_mas=50;
118
 
        Word32 size_lineinfo=sizeof(LineInfo);
 
118
        uint32_t size_lineinfo=sizeof(LineInfo);
119
119
        if(!LDPUMA_Skip(NotKillPointed))
120
120
                fl_not_kill_pointed=TRUE;
121
121
        else
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;
132
 
//      Word32                            size32;
 
132
//      uint32_t                                  size32;
133
133
        int                                       i;
134
 
//      Word32    HorType;
135
 
//    Word32    VerType;
136
 
        BOOL fl_cont;
137
 
    Word8 ImageName[CPAGE_MAXNAME];
138
 
        // �������� PAGEINFO ������� ��������
 
134
//      uint32_t    HorType;
 
135
//    uint32_t    VerType;
 
136
        Bool fl_cont;
 
137
    uchar ImageName[CPAGE_MAXNAME];
 
138
        // Получаем PAGEINFO текущей страницы
139
139
        GetPageInfo(hCPage,&info);
140
140
 
141
 
        // �������� � pImage �� PInfo ��������� �� �����������,
142
 
        // ��������� �� ���������
 
141
        // Копируем в pImage из PInfo указатель на изображение,
 
142
        // связанное со страницей
143
143
        for(i=0;i<CPAGE_MAXNAME;i++)
144
144
                ImageName[i]=info.szImageName[i];
145
145
 
150
150
        cbk1.CIMAGE_ImageRead  = cbk.CIMAGE_ImageRead;
151
151
        cbk1.CIMAGE_ImageClose = cbk.CIMAGE_ImageClose;
152
152
 
153
 
        if (!CIMAGE_WriteCallbackImage((Word8*)ImageDelLines,cbk1))
 
153
        if (!CIMAGE_WriteCallbackImage((uchar*)ImageDelLines,cbk1))
154
154
        {
155
155
            return FALSE;
156
156
        }
157
157
 
158
158
    Handle lpDIB;
159
 
    if(!CIMAGE_ReadDIB((Word8*)ImageDelLines,&lpDIB,1))
 
159
    if(!CIMAGE_ReadDIB((uchar*)ImageDelLines,&lpDIB,1))
160
160
        {
161
 
          CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
161
          CIMAGE_DeleteImage((uchar*)ImageDelLines);
162
162
          return FALSE;
163
163
        }
164
164
 
165
165
    CTDIB* ctdib = new CTDIB;
166
166
        if(!ctdib)
167
167
        {
168
 
          CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
168
          CIMAGE_DeleteImage((uchar*)ImageDelLines);
169
169
          return FALSE;
170
170
        }
171
171
 
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));
179
179
 
180
 
        Word32 size_line_com=sizeof(LINE_COM);
 
180
        uint32_t size_line_com=sizeof(LINE_COM);
181
181
        CLINE_handle hline;
182
182
 
183
183
   if(LDPUMA_Skip(ObvKillLines))
187
187
                DelLineFromInside(pmasp,bytewide,num_str,hline);
188
188
           }
189
189
   }
190
 
   else//����������� ������ �����
 
190
   else//тривиальное снятие линий
191
191
   {
192
192
//      if(!LDPUMA_Skip(hUseCLine))
193
193
//      {
201
201
         {
202
202
                 ctdib->ResetDIB ();
203
203
             delete ctdib;
204
 
                 CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
204
                 CIMAGE_DeleteImage((uchar*)ImageDelLines);
205
205
                 return FALSE;
206
206
         }
207
207
         if(!InitLineMas(&pVerLines,len_ver_mas))
209
209
         DelLineMas(pHorLines);
210
210
                 ctdib->ResetDIB ();
211
211
             delete ctdib;
212
 
                 CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
212
                 CIMAGE_DeleteImage((uchar*)ImageDelLines);
213
213
                 return FALSE;
214
214
         }
215
215
 
289
289
          {
290
290
                 ctdib->ResetDIB ();
291
291
             delete ctdib;
292
 
                 CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
292
                 CIMAGE_DeleteImage((uchar*)ImageDelLines);
293
293
                 return FALSE;
294
294
          }
295
295
 
296
 
         HorType = (Word32)lti.Hor.Lns;
297
 
         VerType = (Word32)lti.Ver.Lns;
 
296
         HorType = (uint32_t)lti.Hor.Lns;
 
297
         VerType = (uint32_t)lti.Ver.Lns;
298
298
 
299
299
 
300
300
/////////////////////////////////////////////////////////////////////////////////////////////
305
305
         {
306
306
                 ctdib->ResetDIB ();
307
307
             delete ctdib;
308
 
                 CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
308
                 CIMAGE_DeleteImage((uchar*)ImageDelLines);
309
309
                 return FALSE;
310
310
         }
311
311
 
365
365
         {
366
366
                 ctdib->ResetDIB ();
367
367
             delete ctdib;
368
 
                 CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
368
                 CIMAGE_DeleteImage((uchar*)ImageDelLines);
369
369
                 DelLineMas(pHorLines);
370
370
                 return FALSE;
371
371
         }
440
440
//      LDPUMA_ConsoleN("Time ver=%d",time_ver);
441
441
    DelLineMas(pHorLines);
442
442
        DelLineMas(pVerLines);
443
 
   }//����� ������������ ��������
 
443
   }//конец тривиального удаления
444
444
 
445
445
    ctdib->ResetDIB ();
446
446
        delete ctdib;
453
453
}
454
454
 
455
455
 
456
 
BOOL InitLineMas(MyLine** ppLines,int len)
 
456
Bool InitLineMas(MyLine** ppLines,int len)
457
457
{
458
458
        (*ppLines)=NULL;
459
459
        if(!((*ppLines)=new MyLine[len]))
468
468
}
469
469
 
470
470
 
471
 
BOOL AddLenLineMas(MyLine** ppLines,int& len,int add)
 
471
Bool AddLenLineMas(MyLine** ppLines,int& len,int add)
472
472
{
473
473
 MyLine *dop;
474
474
 int i;
489
489
 return TRUE;
490
490
}
491
491
 
492
 
BOOL DelOneHorLine(Word8* pmasp,int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10)
 
492
Bool DelOneHorLine(uchar* pmasp,int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10)
493
493
{
494
494
 int wide;
495
495
 int x1;
546
546
 
547
547
 int i;
548
548
 int j=y1*bytewide+(old_x1>>3);
549
 
 Word8* now=pmasp+j;
550
 
 Word8* end;
 
549
 uchar* now=pmasp+j;
 
550
 uchar* end;
551
551
 
552
552
 switch(old_x1&7)
553
553
 {
798
798
 }
799
799
 else
800
800
 {
801
 
  Word8* end_byte = pmasp + bytewide*num_str - 1;
 
801
  uchar* end_byte = pmasp + bytewide*num_str - 1;
802
802
  end=pmasp+y1*bytewide+startbyte;
803
803
  spusk=(w+begy-endy-1)/(begy-endy);
804
804
  for(i=y1;i>=y2 && end >= pmasp;i--)
896
896
}
897
897
 
898
898
 
899
 
BOOL DelOneVerLine(Word8* pmasp,int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10)
 
899
Bool DelOneVerLine(uchar* pmasp,int bytewide,int num_str,int begx,int begy,int endx,int endy,int wide10)
900
900
{
901
901
 int wide;
902
902
 int x1;
1052
1052
}
1053
1053
 
1054
1054
/*
1055
 
BOOL GetMasP(Handle hCPage,Word8* ImageName,int x1,int y1,int x2,int y2,Word8** ppmasp)
 
1055
Bool GetMasP(Handle hCPage,uchar* ImageName,int x1,int y1,int x2,int y2,uchar** ppmasp)
1056
1056
{
1057
1057
    int prewide;
1058
1058
        int left=x1;
1067
1067
 
1068
1068
        Bool ret;
1069
1069
 
1070
 
        DataInto.dwHeight   = (Word32)(h);
1071
 
        DataInto.dwWidth    = (Word32)(prewide);
1072
 
        DataInto.wByteWidth = (Word16)(prewide/8);
 
1070
        DataInto.dwHeight   = (uint32_t)(h);
 
1071
        DataInto.dwWidth    = (uint32_t)(prewide);
 
1072
        DataInto.wByteWidth = (uint16_t)(prewide/8);
1073
1073
        DataInto.dwX        = left;
1074
1074
        DataInto.dwY        = upper;
1075
1075
        DataInto.MaskFlag   = 0x00;
1078
1078
        DataOut.dwWidth    = DataInto.dwWidth;
1079
1079
        DataOut.dwHeight   = DataInto.dwHeight;
1080
1080
        DataOut.wByteWidth = DataInto.wByteWidth;
1081
 
        DataOut.byBit      = (Word16)info.BitPerPixel;
 
1081
        DataOut.byBit      = (uint16_t)info.BitPerPixel;
1082
1082
        DataOut.lpData     = *ppmasp;
1083
1083
        ret = CIMAGE_GetData (ImageName, &DataInto, &DataOut);
1084
1084
        if (!ret)
1090
1090
}
1091
1091
*/
1092
1092
 
1093
 
BOOL DelLineFromInside(Word8* pmasp,const int bytewide,int num_str,CLINE_handle hline)
 
1093
Bool DelLineFromInside(uchar* pmasp,const int bytewide,int num_str,CLINE_handle hline)
1094
1094
{
1095
1095
 CLINE_handle hevent;
1096
1096
 CLINE_handle hinv;
1100
1100
 int Level;
1101
1101
 int Beg;
1102
1102
 int End;
1103
 
 Word8* p;
1104
 
 Word8* pUp;
1105
 
 Word8* pDown;
1106
 
 Word8* p0;
 
1103
 uchar* p;
 
1104
 uchar* pUp;
 
1105
 uchar* pDown;
 
1106
 uchar* p0;
1107
1107
 int end_str=num_str-1;
1108
1108
 int endw=(bytewide<<3)-1;
1109
1109
 int byte_count=end_str*bytewide;
1110
1110
 int size_t;
1111
1111
// int j;
1112
 
 Word8* pmaspend=pmasp+bytewide*num_str;
 
1112
 uchar* pmaspend=pmasp+bytewide*num_str;
1113
1113
 
1114
1114
 data_line=CLINE_GetLineData(hline);
1115
1115
 
1161
1161
                if(!data_inv)
1162
1162
                        return FALSE;
1163
1163
 
1164
 
//��������
 
1164
//алгоритм
1165
1165
                 Beg=data_inv->Pos;
1166
1166
                 End=data_inv->Lent+Beg;
1167
1167
                 End--;
1257
1257
                 }
1258
1258
 
1259
1259
                 }
1260
 
//����� ���������
 
1260
//конец алгоритма
1261
1261
          }
1262
1262
   }
1263
1263
  }
1277
1277
                if(!data_inv)
1278
1278
                        return FALSE;
1279
1279
 
1280
 
//��������
 
1280
//алгоритм
1281
1281
                 Beg=data_inv->Pos;
1282
1282
                 End=data_inv->Lent+Beg;
1283
1283
                 End--;
1375
1375
 
1376
1376
                 }
1377
1377
 
1378
 
//����� ���������
 
1378
//конец алгоритма
1379
1379
                 Level-=bytewide;
1380
1380
                 hinv=CLINE_GetNextEventInv(hinv);
1381
1381
          }
1402
1402
                if(!data_inv)
1403
1403
                         return FALSE;
1404
1404
 
1405
 
//��������
 
1405
//алгоритм
1406
1406
                Beg=end_str-data_inv->Pos;
1407
1407
                End=Beg-data_inv->Lent;
1408
1408
                End++;
1487
1487
                  }
1488
1488
                 }
1489
1489
                }
1490
 
//����� ���������
 
1490
//конец алгоритма
1491
1491
          }
1492
1492
   }
1493
1493
  }
1507
1507
                 if(!data_inv)
1508
1508
                         return FALSE;
1509
1509
 
1510
 
//��������
 
1510
//алгоритм
1511
1511
                 Beg=end_str-data_inv->Pos;
1512
1512
                 End=Beg-data_inv->Lent;
1513
1513
                 End++;
1570
1570
                         break;
1571
1571
                 default:break;
1572
1572
                 }
1573
 
//����� ���������
 
1573
//конец алгоритма
1574
1574
                 Level++;
1575
1575
                 hinv=CLINE_GetNextEventInv(hinv);
1576
1576
          }
1588
1588
        CIMAGEIMAGECALLBACK         cbk;
1589
1589
        CIMAGEIMAGECALLBACK         cbk1;
1590
1590
 
1591
 
    if (!CIMAGE_GetCallbackImage((Word8*)ImageDelLines,&cbk))
 
1591
    if (!CIMAGE_GetCallbackImage((uchar*)ImageDelLines,&cbk))
1592
1592
                return FALSE;
1593
1593
 
1594
1594
        cbk1.CIMAGE_ImageOpen  = cbk.CIMAGE_ImageOpen;
1595
1595
        cbk1.CIMAGE_ImageRead  = cbk.CIMAGE_ImageRead;
1596
1596
        cbk1.CIMAGE_ImageClose = cbk.CIMAGE_ImageClose;
1597
1597
 
1598
 
        if (!CIMAGE_WriteCallbackImage((Word8*)ImageDelLines,cbk1))
 
1598
        if (!CIMAGE_WriteCallbackImage((uchar*)ImageDelLines,cbk1))
1599
1599
        {
1600
1600
            return FALSE;
1601
1601
        }
1602
1602
 
1603
1603
    Handle lpDIB;
1604
 
    if(!CIMAGE_ReadDIB((Word8*)ImageDelLines,&lpDIB,1))
 
1604
    if(!CIMAGE_ReadDIB((uchar*)ImageDelLines,&lpDIB,1))
1605
1605
        {
1606
 
          CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
1606
          CIMAGE_DeleteImage((uchar*)ImageDelLines);
1607
1607
          return FALSE;
1608
1608
        }
1609
1609
 
1610
1610
    CTDIB* ctdib = new CTDIB;
1611
1611
        if(!ctdib)
1612
1612
        {
1613
 
          CIMAGE_DeleteImage((Word8*)ImageDelLines);
 
1613
          CIMAGE_DeleteImage((uchar*)ImageDelLines);
1614
1614
          return FALSE;
1615
1615
        }
1616
1616
 
1618
1618
    const int bytewide=ctdib->GetLineWidthInBytes();
1619
1619
    int num_str=ctdib->GetLinesNumber ();
1620
1620
 
1621
 
    Word8* pmasp=(Word8*)(ctdib->GetPtrToBitFild());
 
1621
    uchar* pmasp=(uchar*)(ctdib->GetPtrToBitFild());
1622
1622
        CLINE_handle hline;
1623
1623
 
1624
1624
    for(hline=CLINE_GetFirstLine(*pCLINE);hline;hline=CLINE_GetNextLine(hline))