52
52
#include "magick/blob-private.h"
53
53
#include "magick/cache.h"
54
54
#include "magick/color.h"
55
#include "magick/colormap-private.h"
55
56
#include "magick/color-private.h"
56
#include "magick/colormap.h"
57
#include "magick/colormap-private.h"
58
57
#include "magick/exception.h"
59
58
#include "magick/exception-private.h"
60
59
#include "magick/image.h"
95
static void InsertRow(ssize_t depth,unsigned char *p,ssize_t y,Image *image)
94
static void InsertRow(long depth,unsigned char *p,long y,Image *image)
100
size_t bit; ssize_t x;
99
unsigned long bit; long x;
101
100
register PixelPacket *q;
102
101
IndexPacket index;
103
102
register IndexPacket *indexes;
113
112
if (q == (PixelPacket *) NULL)
115
114
indexes=GetAuthenticIndexQueue(image);
116
for (x=0; x < ((ssize_t) image->columns-7); x+=8)
115
for (x=0; x < ((long) image->columns-7); x+=8)
118
117
for (bit=0; bit < 8; bit++)
120
119
index=(IndexPacket) ((((*p) & (0x80 >> bit)) != 0) ? 0x01 : 0x00);
121
120
indexes[x+bit]=index;
122
*q++=image->colormap[(ssize_t) index];
121
*q++=image->colormap[(long) index];
143
142
if (q == (PixelPacket *) NULL)
145
144
indexes=GetAuthenticIndexQueue(image);
146
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
145
for (x=0; x < ((long) image->columns-1); x+=2)
148
147
index=ConstrainColormapIndex(image,(*p >> 6) & 0x3);
149
148
indexes[x]=index;
150
*q++=image->colormap[(ssize_t) index];
149
*q++=image->colormap[(long) index];
151
150
index=ConstrainColormapIndex(image,(*p >> 4) & 0x3);
152
151
indexes[x]=index;
153
*q++=image->colormap[(ssize_t) index];
152
*q++=image->colormap[(long) index];
154
153
index=ConstrainColormapIndex(image,(*p >> 2) & 0x3);
155
154
indexes[x]=index;
156
*q++=image->colormap[(ssize_t) index];
155
*q++=image->colormap[(long) index];
157
156
index=ConstrainColormapIndex(image,(*p) & 0x3);
158
157
indexes[x+1]=index;
159
*q++=image->colormap[(ssize_t) index];
158
*q++=image->colormap[(long) index];
162
161
if ((image->columns % 4) != 0)
164
163
index=ConstrainColormapIndex(image,(*p >> 6) & 0x3);
165
164
indexes[x]=index;
166
*q++=image->colormap[(ssize_t) index];
165
*q++=image->colormap[(long) index];
167
166
if ((image->columns % 4) >= 1)
170
169
index=ConstrainColormapIndex(image,(*p >> 4) & 0x3);
171
170
indexes[x]=index;
172
*q++=image->colormap[(ssize_t) index];
171
*q++=image->colormap[(long) index];
173
172
if ((image->columns % 4) >= 2)
176
175
index=ConstrainColormapIndex(image,(*p >> 2) & 0x3);
177
176
indexes[x]=index;
178
*q++=image->colormap[(ssize_t) index];
177
*q++=image->colormap[(long) index];
191
190
if (q == (PixelPacket *) NULL)
193
192
indexes=GetAuthenticIndexQueue(image);
194
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
193
for (x=0; x < ((long) image->columns-1); x+=2)
196
195
index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
197
196
indexes[x]=index;
198
*q++=image->colormap[(ssize_t) index];
197
*q++=image->colormap[(long) index];
199
198
index=ConstrainColormapIndex(image,(*p) & 0xf);
200
199
indexes[x+1]=index;
201
*q++=image->colormap[(ssize_t) index];
200
*q++=image->colormap[(long) index];
204
203
if ((image->columns % 2) != 0)
206
205
index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
207
206
indexes[x]=index;
208
*q++=image->colormap[(ssize_t) index];
207
*q++=image->colormap[(long) index];
211
210
if (SyncAuthenticPixels(image,exception) == MagickFalse)
218
217
if (q == (PixelPacket *) NULL) break;
219
218
indexes=GetAuthenticIndexQueue(image);
221
for (x=0; x < (ssize_t) image->columns; x++)
220
for (x=0; x < (long) image->columns; x++)
223
222
index=ConstrainColormapIndex(image,*p);
224
223
indexes[x]=index;
225
*q++=image->colormap[(ssize_t) index];
224
*q++=image->colormap[(long) index];
228
227
if (SyncAuthenticPixels(image,exception) == MagickFalse)
255
254
exception=(&image->exception);
257
256
scale_intensity=ScaleCharToQuantum(16);
258
for (y=0; y < (ssize_t) image->rows; y++)
257
for (y=0; y < (long) image->rows; y++)
260
259
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
261
for (x=0; x < (ssize_t) image->columns; x++)
260
for (x=0; x < (long) image->columns; x++)
263
262
if (intensity < q->red)
264
263
intensity=q->red;
311
unsigned long EncodedByte;
313
312
unsigned char RunCount,RunValue,RunCountMasked;
314
313
CUTHeader Header;
315
314
CUTPalHeader PalHeader;
319
318
unsigned char *BImgBuff=NULL,*ptrB;
359
358
while((int) RunCountMasked!=0) /*end of line?*/
362
if((int) RunCount<0x80) i=(ssize_t) RunCountMasked;
361
if((int) RunCount<0x80) i=(long) RunCountMasked;
363
362
offset=SeekBlob(image,TellBlob(image)+i,SEEK_SET);
365
364
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
366
365
if(EOFBlob(image) != MagickFalse) goto CUT_KO; /*wrong data*/
367
366
EncodedByte-=i+1;
368
ldblk+=(ssize_t) RunCountMasked;
367
ldblk+=(long) RunCountMasked;
370
369
RunCount=(unsigned char) ReadBlobByte(image);
371
370
if(EOFBlob(image) != MagickFalse) goto CUT_KO; /*wrong data: unexpected eof in line*/
382
381
image->columns=Header.Width;
383
382
image->rows=Header.Height;
385
image->colors=(size_t) (GetQuantumRange(1UL*i)+1);
384
image->colors=(unsigned long) (GetQuantumRange(1UL*i)+1);
387
386
if (image_info->ping) goto Finish;
505
504
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
508
for (i=0; i < (ssize_t)image->colors; i++)
507
for (i=0; i < (long)image->colors; i++)
510
509
image->colormap[i].red=ScaleCharToQuantum((unsigned char) i);
511
510
image->colormap[i].green=ScaleCharToQuantum((unsigned char) i);
586
585
image->colormap[1].red=image->colormap[1].green=image->colormap[1].blue=(Quantum) QuantumRange;
587
for (i=0; i < (ssize_t)image->rows; i++)
586
for (i=0; i < (long)image->rows; i++)
589
588
q=QueueAuthenticPixels(image,0,i,image->columns,1,exception);
590
for (j=0; j < (ssize_t)image->columns; j++)
589
for (j=0; j < (long)image->columns; j++)
592
591
if(q->red==ScaleCharToQuantum(1))
636
635
% The format of the RegisterCUTImage method is:
638
% size_t RegisterCUTImage(void)
637
% unsigned long RegisterCUTImage(void)
641
ModuleExport size_t RegisterCUTImage(void)
640
ModuleExport unsigned long RegisterCUTImage(void)