📄 mga_ras.c
字号:
/* (c) HelDoRe SUN RAS unit ... v0.0.3 Supported formats : 8 bpp 6 bpp RLE*/ #define VERRAS " unit v0.0.3"#include <stdio.h>#include "../mga_view.h"void help_ras(){printf("RAS%s\n + 8 bpp\n + 8 bpp RLE\n",VERRAS);}int detect_ras(){ int len,type,val; tempi=fgetc32(plik); if (tempi !=0x59a66a95) return 1; image_x=fgetc32(plik); image_y=fgetc32(plik); depth=fgetc32(plik); len=fgetc32(plik); type=fgetc32(plik); fseek(plik,8,SEEK_CUR); if (check_image(image_x,image_y,depth)==3) return 3; printf("SUN RAS%s\n",VERRAS); printf("RAS %ix%ix%i ",image_x,image_y,depth); switch (type) { case 0:printf("old");break; case 1:printf("standard");break; case 2:printf("RLE");break; case 0xffff:printf("experimental");break; default:break; } printf("\n"); if (depth==8) { for (tempi=0;tempi<256;tempi++) { tab2r[tempi]=fgetc(plik); } for (tempi=0;tempi<256;tempi++) { tab2g[tempi]=fgetc(plik); } for (tempi=0;tempi<256;tempi++) { tab2b[tempi]=fgetc(plik); } } if ((type==0) || (type==1)) { for (y=0;y<image_y;y++) { for (x=0;x<image_x;x++) { tempi=fgetc(plik); tabr[x+y*image_x]=tab2r[tempi]; tabg[x+y*image_x]=tab2g[tempi]; tabb[x+y*image_x]=tab2b[tempi]; } } } if (type==2) { for (y=0;y<image_y;y++) { for (x=0;x<image_x;x++) { if ((tempi=fgetc(plik))==-1) return 0; if (tempi!=0x80) { tabr[x+y*image_x]=tab2r[tempi]; tabg[x+y*image_x]=tab2g[tempi]; tabb[x+y*image_x]=tab2b[tempi]; } else { len=fgetc(plik); if (len==0) { tabr[x+y*image_x]=tab2r[0x80]; tabg[x+y*image_x]=tab2g[0x80]; tabb[x+y*image_x]=tab2b[0x80]; } else { val=fgetc(plik); for (tempi=0;tempi<len+1;tempi++) { tabr[x+y*image_x]=tab2r[val]; tabg[x+y*image_x]=tab2g[val]; tabb[y*image_x+x++]=tab2b[val]; if (x>=image_x+1) {x=1;y++;} } x--; } } } } } return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -