mga_pix.c

来自「linux下显示各种格式图片」· C语言 代码 · 共 79 行

C
79
字号
/* 	(c) HelDoRe	Alias Pix unit ...    v0.0.3			Supported formats :			24bpp rle			8 bpp GRAY rle*/			#define VERPIX " unit v0.0.3"#include <stdio.h>#include "../mga_view.h"void help_pix(){printf("PIX%s\n   +  8 bpp rle grayscale\n   + 24 bpp rle\n",VERPIX);}int detect_pix(){    int r1,g1,b1,rozp;	    image_x=fgetc16(plik);	    image_y=fgetc16(plik);	    tempi=fgetc32(plik);	    depth=fgetc16(plik);	    if (((depth != 24) && (depth!=8)) || (image_x>ogr_x) || (image_y>ogr_y) || (image_x==0) || (image_y==0)) return 1;		check_image(image_x,image_y,depth);		printf("Alias PIX%s\n",VERPIX);		printf("PIX detected    : %ix%ix%i\n",image_x,image_y,depth);			for (y=0;y<image_y;y++) {		           for (x=0;x<image_x;x++)		            {				if ((tempi=fgetc(plik))==-1) return 0;				    if (tempi>1) {				    b1=fgetc(plik);				    if (depth==24) {				    g1=fgetc(plik);				    r1=fgetc(plik);				    } else {				    g1=b1;				    r1=b1;				    }				    				    				    rozp=0;					while (rozp != tempi)				     {					tabr[y*image_x+x]=r1;					tabg[y*image_x+x]=g1;					tabb[y*image_x+x++]=b1;				        rozp++;					}					x--;					} else {					tabb[y*image_x+x]=fgetc(plik);				    if (depth==24) {					tabg[y*image_x+x]=fgetc(plik);					tabr[y*image_x+x]=fgetc(plik);					} else {					tabg[y*image_x+x]=tabb[y*image_x+x];					tabr[y*image_x+x]=tabb[y*image_x+x];					}										}					}				    }			   			    return 0;	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?