Lines Matching refs:GifFile

35 static int DGifGetWord(GifFileType *GifFile, GifWord *Word);
36 static int DGifSetupDecompress(GifFileType *GifFile);
37 static int DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line,
40 static int DGifDecompressInput(GifFileType *GifFile, int *Code);
41 static int DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf,
53 GifFileType *GifFile;
61 GifFile = DGifOpenFileHandle(FileHandle, Error);
63 return GifFile;
75 GifFileType *GifFile;
79 GifFile = (GifFileType *)malloc(sizeof(GifFileType));
80 if (GifFile == NULL) {
87 /*@i1@*/memset(GifFile, '\0', sizeof(GifFileType));
90 GifFile->SavedImages = NULL;
91 GifFile->SColorMap = NULL;
98 free((char *)GifFile);
108 GifFile->Private = (void *)Private;
113 GifFile->UserData = NULL; /* TVT */
117 if (READ(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {
122 free((char *)GifFile);
133 free((char *)GifFile);
137 if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {
140 free((char *)GifFile);
144 GifFile->Error = 0;
149 return GifFile;
159 GifFileType *GifFile;
162 GifFile = (GifFileType *)malloc(sizeof(GifFileType));
163 if (GifFile == NULL) {
169 memset(GifFile, '\0', sizeof(GifFileType));
172 GifFile->SavedImages = NULL;
173 GifFile->SColorMap = NULL;
179 free((char *)GifFile);
183 GifFile->Private = (void *)Private;
189 GifFile->UserData = userData; /* TVT */
192 if (READ(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {
196 free((char *)GifFile);
206 free((char *)GifFile);
210 if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {
212 free((char *)GifFile);
216 GifFile->Error = 0;
221 return GifFile;
229 DGifGetScreenDesc(GifFileType *GifFile)
234 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
238 GifFile->Error = D_GIF_ERR_NOT_READABLE;
243 if (DGifGetWord(GifFile, &GifFile->SWidth) == GIF_ERROR ||
244 DGifGetWord(GifFile, &GifFile->SHeight) == GIF_ERROR)
247 if (READ(GifFile, Buf, 3) != 3) {
248 GifFile->Error = D_GIF_ERR_READ_FAILED;
249 GifFreeMapObject(GifFile->SColorMap);
250 GifFile->SColorMap = NULL;
253 GifFile->SColorResolution = (((Buf[0] & 0x70) + 1) >> 4) + 1;
256 GifFile->SBackGroundColor = Buf[1];
257 GifFile->AspectByte = Buf[2];
261 GifFile->SColorMap = GifMakeMapObject(1 << BitsPerPixel, NULL);
262 if (GifFile->SColorMap == NULL) {
263 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM;
268 GifFile->SColorMap->SortFlag = SortFlag;
269 for (i = 0; i < GifFile->SColorMap->ColorCount; i++) {
270 if (READ(GifFile, Buf, 3) != 3) {
271 GifFreeMapObject(GifFile->SColorMap);
272 GifFile->SColorMap = NULL;
273 GifFile->Error = D_GIF_ERR_READ_FAILED;
276 GifFile->SColorMap->Colors[i].Red = Buf[0];
277 GifFile->SColorMap->Colors[i].Green = Buf[1];
278 GifFile->SColorMap->Colors[i].Blue = Buf[2];
281 GifFile->SColorMap = NULL;
291 DGifGetRecordType(GifFileType *GifFile, GifRecordType* Type)
294 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
298 GifFile->Error = D_GIF_ERR_NOT_READABLE;
302 if (READ(GifFile, &Buf, 1) != 1) {
303 GifFile->Error = D_GIF_ERR_READ_FAILED;
319 GifFile->Error = D_GIF_ERR_WRONG_RECORD;
331 DGifGetImageDesc(GifFileType *GifFile)
335 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
340 GifFile->Error = D_GIF_ERR_NOT_READABLE;
344 if (DGifGetWord(GifFile, &GifFile->Image.Left) == GIF_ERROR ||
345 DGifGetWord(GifFile, &GifFile->Image.Top) == GIF_ERROR ||
346 DGifGetWord(GifFile, &GifFile->Image.Width) == GIF_ERROR ||
347 DGifGetWord(GifFile, &GifFile->Image.Height) == GIF_ERROR)
349 if (READ(GifFile, Buf, 1) != 1) {
350 GifFile->Error = D_GIF_ERR_READ_FAILED;
351 GifFreeMapObject(GifFile->Image.ColorMap);
352 GifFile->Image.ColorMap = NULL;
356 GifFile->Image.Interlace = (Buf[0] & 0x40) ? true : false;
359 if (GifFile->Image.ColorMap) {
360 GifFreeMapObject(GifFile->Image.ColorMap);
361 GifFile->Image.ColorMap = NULL;
367 GifFile->Image.ColorMap = GifMakeMapObject(1 << BitsPerPixel, NULL);
368 if (GifFile->Image.ColorMap == NULL) {
369 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM;
374 for (i = 0; i < GifFile->Image.ColorMap->ColorCount; i++) {
375 if (READ(GifFile, Buf, 3) != 3) {
376 GifFreeMapObject(GifFile->Image.ColorMap);
377 GifFile->Error = D_GIF_ERR_READ_FAILED;
378 GifFile->Image.ColorMap = NULL;
381 GifFile->Image.ColorMap->Colors[i].Red = Buf[0];
382 GifFile->Image.ColorMap->Colors[i].Green = Buf[1];
383 GifFile->Image.ColorMap->Colors[i].Blue = Buf[2];
387 if (GifFile->SavedImages) {
388 if ((GifFile->SavedImages = (SavedImage *)realloc(GifFile->SavedImages,
390 (GifFile->ImageCount + 1))) == NULL) {
391 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM;
395 if ((GifFile->SavedImages =
397 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM;
402 sp = &GifFile->SavedImages[GifFile->ImageCount];
403 memcpy(&sp->ImageDesc, &GifFile->Image, sizeof(GifImageDesc));
404 if (GifFile->Image.ColorMap != NULL) {
406 GifFile->Image.ColorMap->ColorCount,
407 GifFile->Image.ColorMap->Colors);
409 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM;
417 GifFile->ImageCount++;
419 Private->PixelCount = (long)GifFile->Image.Width *
420 (long)GifFile->Image.Height;
423 (void)DGifSetupDecompress(GifFile);
432 DGifGetLine(GifFileType *GifFile, GifPixelType *Line, int LineLen)
435 GifFilePrivateType *Private = (GifFilePrivateType *) GifFile->Private;
439 GifFile->Error = D_GIF_ERR_NOT_READABLE;
444 LineLen = GifFile->Image.Width;
447 GifFile->Error = D_GIF_ERR_DATA_TOO_BIG;
451 if (DGifDecompressLine(GifFile, Line, LineLen) == GIF_OK) {
459 if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR)
472 DGifGetPixel(GifFileType *GifFile, GifPixelType Pixel)
475 GifFilePrivateType *Private = (GifFilePrivateType *) GifFile->Private;
479 GifFile->Error = D_GIF_ERR_NOT_READABLE;
484 GifFile->Error = D_GIF_ERR_DATA_TOO_BIG;
488 if (DGifDecompressLine(GifFile, &Pixel, 1) == GIF_OK) {
496 if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR)
513 DGifGetExtension(GifFileType *GifFile, int *ExtCode, GifByteType **Extension)
516 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
520 GifFile->Error = D_GIF_ERR_NOT_READABLE;
524 if (READ(GifFile, &Buf, 1) != 1) {
525 GifFile->Error = D_GIF_ERR_READ_FAILED;
530 return DGifGetExtensionNext(GifFile, Extension);
539 DGifGetExtensionNext(GifFileType *GifFile, GifByteType ** Extension)
542 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
544 if (READ(GifFile, &Buf, 1) != 1) {
545 GifFile->Error = D_GIF_ERR_READ_FAILED;
552 if (READ(GifFile, &((*Extension)[1]), Buf) != Buf) {
553 GifFile->Error = D_GIF_ERR_READ_FAILED;
589 int DGifSavedExtensionToGCB(GifFileType *GifFile,
594 if (ImageIndex < 0 || ImageIndex > GifFile->ImageCount - 1)
602 for (i = 0; i < GifFile->SavedImages[ImageIndex].ExtensionBlockCount; i++) {
603 ExtensionBlock *ep = &GifFile->SavedImages[ImageIndex].ExtensionBlocks[i];
615 DGifCloseFile(GifFileType *GifFile)
619 if (GifFile == NULL || GifFile->Private == NULL)
622 if (GifFile->Image.ColorMap) {
623 GifFreeMapObject(GifFile->Image.ColorMap);
624 GifFile->Image.ColorMap = NULL;
627 if (GifFile->SColorMap) {
628 GifFreeMapObject(GifFile->SColorMap);
629 GifFile->SColorMap = NULL;
632 if (GifFile->SavedImages) {
633 GifFreeSavedImages(GifFile);
634 GifFile->SavedImages = NULL;
637 GifFreeExtensions(&GifFile->ExtensionBlockCount, &GifFile->ExtensionBlocks);
639 Private = (GifFilePrivateType *) GifFile->Private;
643 GifFile->Error = D_GIF_ERR_NOT_READABLE;
648 GifFile->Error = D_GIF_ERR_CLOSE_FAILED;
652 free((char *)GifFile->Private);
659 free(GifFile);
669 DGifGetWord(GifFileType *GifFile, GifWord *Word)
673 if (READ(GifFile, c, 2) != 2) {
674 GifFile->Error = D_GIF_ERR_READ_FAILED;
690 DGifGetCode(GifFileType *GifFile, int *CodeSize, GifByteType **CodeBlock)
692 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
696 GifFile->Error = D_GIF_ERR_NOT_READABLE;
702 return DGifGetCodeNext(GifFile, CodeBlock);
711 DGifGetCodeNext(GifFileType *GifFile, GifByteType **CodeBlock)
714 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
717 if (READ(GifFile, &Buf, 1) != 1) {
718 GifFile->Error = D_GIF_ERR_READ_FAILED;
727 if (READ(GifFile, &((*CodeBlock)[1]), Buf) != Buf) {
728 GifFile->Error = D_GIF_ERR_READ_FAILED;
744 DGifSetupDecompress(GifFileType *GifFile)
749 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
751 READ(GifFile, &CodeSize, 1); /* Read Code size from file. */
780 DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line, int LineLen)
786 GifFilePrivateType *Private = (GifFilePrivateType *) GifFile->Private;
807 if (DGifDecompressInput(GifFile, &CrntCode) == GIF_ERROR)
814 GifFile->Error = D_GIF_ERR_EOF_TOO_SOON;
848 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT;
864 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT;
924 DGifGetLZCodes(GifFileType *GifFile, int *Code)
927 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
931 GifFile->Error = D_GIF_ERR_NOT_READABLE;
935 if (DGifDecompressInput(GifFile, Code) == GIF_ERROR)
941 if (DGifGetCodeNext(GifFile, &CodeBlock) == GIF_ERROR)
963 DGifDecompressInput(GifFileType *GifFile, int *Code)
972 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
978 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT;
984 if (DGifBufferedInput(GifFile, Private->Buf, &NextByte) == GIF_ERROR) {
1017 DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf, GifByteType *NextByte)
1021 if (READ(GifFile, Buf, 1) != 1) {
1022 GifFile->Error = D_GIF_ERR_READ_FAILED;
1030 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT;
1038 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT;
1041 if (READ(GifFile, &Buf[1], Buf[0]) != Buf[0]) {
1042 GifFile->Error = D_GIF_ERR_READ_FAILED;
1062 DGifSlurp(GifFileType *GifFile)
1070 GifFile->ExtensionBlocks = NULL;
1071 GifFile->ExtensionBlockCount = 0;
1074 if (DGifGetRecordType(GifFile, &RecordType) == GIF_ERROR)
1079 if (DGifGetImageDesc(GifFile) == GIF_ERROR)
1082 sp = &GifFile->SavedImages[GifFile->ImageCount - 1];
1113 if (DGifGetLine(GifFile,
1120 if (DGifGetLine(GifFile,sp->RasterBits,ImageSize)==GIF_ERROR)
1124 if (GifFile->ExtensionBlocks) {
1125 sp->ExtensionBlocks = GifFile->ExtensionBlocks;
1126 sp->ExtensionBlockCount = GifFile->ExtensionBlockCount;
1128 GifFile->ExtensionBlocks = NULL;
1129 GifFile->ExtensionBlockCount = 0;
1134 if (DGifGetExtension(GifFile,&ExtFunction,&ExtData) == GIF_ERROR)
1137 if (GifAddExtensionBlock(&GifFile->ExtensionBlockCount,
1138 &GifFile->ExtensionBlocks,
1143 if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR)
1147 if (GifAddExtensionBlock(&GifFile->ExtensionBlockCount,
1148 &GifFile->ExtensionBlocks,