Changeset 124 for abuse/trunk/src/imlib/gifread.cpp
- Timestamp:
- Mar 18, 2008, 9:36:56 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
abuse/trunk/src/imlib/gifread.cpp
r56 r124 27 27 28 28 struct GifScreen { 29 uint16_tWidth;30 uint16_tHeight;31 uint8_tColorMap[3][256];32 uint16_tBitPixel;33 uint16_tColorResolution;34 uint16_tBackground;35 uint16_tAspectRatio;29 uint16_t Width; 30 uint16_t Height; 31 uint8_t ColorMap[3][256]; 32 uint16_t BitPixel; 33 uint16_t ColorResolution; 34 uint16_t Background; 35 uint16_t AspectRatio; 36 36 } GifScreen; 37 37 … … 72 72 fread((uint8_t *)&gif_screen.background,1,1,fp); 73 73 if (fread((uint8_t *)&gif_screen.reserved,1,1,fp)==1) 74 75 76 77 78 79 // 80 81 82 { 74 { 75 if (gif_screen.color_info&128) 76 { 77 ncolors=2<<(gif_screen.color_info&0x0f); 78 make_block(sizeof(palette)); 79 // pal=new palette(ncolors); 80 pal=new palette(256); 81 if (pal) 82 { 83 83 if (fread((uint8_t *)pal->addr(),1,ncolors*3,fp)!=ncolors*3) er=imREAD_ERROR; 84 85 86 87 88 89 90 91 84 } else er=imMEMORY_ERROR; 85 } 86 if (!er) 87 { do 88 { 89 if (fread((uint8_t *)&sep,1,1,fp)!=1) 90 er=imREAD_ERROR; 91 } while (!er && sep!=','); 92 92 fread((uint8_t *)&gif_image.xoff,2,1,fp); 93 93 gif_image.xoff=uint16_to_local(gif_image.xoff); … … 98 98 fread((uint8_t *)&gif_image.h,2,1,fp); 99 99 gif_image.h=uint16_to_local(gif_image.h); 100 101 102 103 104 100 if (!er && (fread((uint8_t *)&gif_image.color_info,1,1,fp)==1)) 101 { 102 if (gif_image.color_info&128) 103 { 104 ncolors=2<<(gif_image.color_info&0x0f); 105 105 CHECK(ncolors<=256); 106 107 108 109 110 111 106 make_block(sizeof(palette)); 107 pal = new palette(ncolors); 108 if (pal) 109 { if (fread((uint8_t *)pal->addr(),1,ncolors*3,fp)!=ncolors*3) er=imREAD_ERROR; 110 } else er=imMEMORY_ERROR; 111 } 112 112 113 114 115 116 117 118 119 113 if (!er) 114 { 115 make_block(sizeof(image)); 116 im=new image(gif_image.w+1,gif_image.h); 117 decode_gif_data(im,fp); 118 fclose(fp); 119 } 120 120 121 122 121 } else er=imREAD_ERROR; 122 } 123 123 124 124 } else er=imREAD_ERROR; 125 125 } else er=imINCORRECT_FILETYPE; 126 126 } else er=imREAD_ERROR;
Note: See TracChangeset
for help on using the changeset viewer.