mga_pi2.c

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

C
75
字号
/* 	(c) HelDoRe	Pic? unit ...   v0.0.4			Supported formats :			DIS			RAW?			QRL*/			#define VERPI2 " unit v0.0.4"#include <stdio.h>#include "../mga_view.h"void help_pi2(){printf("DIS%s\n   +  8 bpp\n   + 24 bpp\n",VERPI2);}int detect_pi2(){				image_y=fgetc16b(plik);		image_x=fgetc16b(plik);		depth=ftell(plik);		fseek(plik,0,SEEK_END);                tempi=ftell(plik);		if ((tempi!=(image_x*image_y)+depth) && (tempi!=(image_x*image_y*3)+(2*image_x)+depth)) return 1;		rewind(plik);		fseek(plik,depth,SEEK_CUR);		if (tempi==(image_x*image_y)+4) depth=1; else {		    depth=3;		    tempi=image_x;		    image_x=image_y;		    image_y=tempi;		    fseek(plik,2,SEEK_CUR);		    }		if (check_image(image_x,image_y,depth)==3) return 3;		printf("DIS/RAW?%s\n",VERPI2);		printf("Something inside: %ix%ix%i",image_x,image_y,depth*8);		if (depth==1) printf(" no color map\n"); else printf(" DIS\n");		if (depth==1) {			for (y=0;y<image_y;y++) {		           for (x=0;x<image_x;x++) {				tempi=fgetc(plik);				tabr[x+y*image_x]=tempi/2;				tabg[x+y*image_x]=tempi/4;				tabb[x+y*image_x]=tempi;		            }			   }			  }		if (depth==3) {			for (y=0;y<image_y;y++) {		           for (x=0;x<image_x;x++) {				tabr[x+y*image_x]=fgetc(plik);		            }		           for (x=0;x<image_x;x++) {				tabg[x+y*image_x]=fgetc(plik);		            }		           for (x=0;x<image_x;x++) {				tabb[x+y*image_x]=fgetc(plik);		            }			    fseek(plik,2,SEEK_CUR);			   }			  }    return 0;	}

⌨️ 快捷键说明

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