📄 mga_pi3.c
字号:
/* (c) HelDoRe Pic Softimage unit ... v0.0.2 24 bpp 24 bpp RLE mixed*/ #define VERPI3 " unit v0.0.2"#include <stdio.h>#include "../mga_view.h"void help_pi3(){printf("PIC%s\n + 24 bpp\n + 24 bpp rle mixed\n",VERPI3);}int detect_pi3(){ int rle,r1,g1,b1; tempi=fgetc32b(plik); if (tempi!=888569939) return 1; fseek(plik,88,SEEK_SET); tempi=fgetc32b(plik); if (tempi!=1413695824) return 1; image_x=fgetc16(plik); image_y=fgetc16(plik); fseek(plik,4,SEEK_CUR); depth=fgetc16(plik)*8; fseek(plik,4,SEEK_CUR); rle=fgetc(plik); if (check_image(image_x,image_y,depth)==3) return 3; printf("SPIC%s\n",VERPI3); printf("Softimage PIC : %ix%ix%i",image_x,image_y,depth); switch(rle) { case 0: printf("\n");break; case 1: printf(" RLE\nPure RLE not supported yet!\n");return 2;break; case 2: printf(" mixed RLE\n");break; default :break; } fseek(plik,8,SEEK_SET); printf("Comment : "); while (tempi!=0) { tempi=fgetc(plik); printf("%c",tempi); } printf("\n"); fseek(plik,108,SEEK_SET); if (rle==0) for (y=0;y<image_y;y++) { for (x=0;x<image_x;x++) { tabr[x+y*image_x]=fgetc(plik); tabg[x+y*image_x]=fgetc(plik); tabb[x+y*image_x]=fgetc(plik); } } if (rle==2) for (y=0;y<image_y;y++) { for (x=0;x<image_x;x++) { if ((tempi=fgetc(plik))==-1) return 0; if (tempi>=128) { r1=fgetc(plik); g1=fgetc(plik); b1=fgetc(plik); for (depth=0;depth<tempi-127;depth++) { tabr[y*image_x+x]=r1; tabg[y*image_x+x]=g1; tabb[y*image_x+x++]=b1; } } if ((tempi!=0) && (tempi<128)) { for (depth=0;depth<tempi+1;depth++) { tabr[y*image_x+x]=fgetc(plik); tabg[y*image_x+x]=fgetc(plik); tabb[y*image_x+x++]=fgetc(plik); } } if (tempi==0) { tabr[y*image_x+x]=fgetc(plik); tabg[y*image_x+x]=fgetc(plik); tabb[y*image_x+x++]=fgetc(plik); } x--; } } return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -