⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mga_epa.c

📁 linux下显示各种格式图片
💻 C
字号:
/* 	(c) HelDoRe	EPA unit ...    v0.0.5			Supported formats :			EPA 1.0			EPA 2.0*/			#define VEREPA " unit v0.0.5"#include <stdio.h>#include "../mga_view.h"void help_epa(){printf("EPA%s\n   + EPA 1.0\n   + EPA 2.0\n",VEREPA);}int detect_epa(){	int wer,enk,enk2;	int attr[140][140][2];	int kolor[16][3] = {	    { 0x00 , 0x00 , 0x00 },	    { 0x00 , 0x00 , 0xaa },	    { 0x00 , 0xaa , 0x00 },	    { 0x00 , 0xaa , 0xaa },	    { 0xaa , 0x00 , 0x00 },	    { 0xaa , 0x00 , 0xaa },	    { 0xaa , 0x55 , 0x00 },	    { 0xaa , 0xaa , 0xaa },	    { 0x55 , 0x55 , 0x55 },	    { 0x55 , 0x55 , 0xff },	    { 0x55 , 0xff , 0x55 },	    { 0x55 , 0xff , 0xff },	    { 0xff , 0x55 , 0x55 },	    { 0xff , 0x55 , 0xff },	    { 0xff , 0xff , 0x55 },	    { 0xff , 0xff , 0xff }	    } ;		image_x=fgetc(plik)*8;		image_y=fgetc(plik)*14;		wer=3;		if ((image_x==136) && ((image_y==84) || (image_y==126))) wer=1;		if (image_x != 136) {		rewind(plik);		tempi=fgetc32(plik);		if (tempi==1096237645) wer=2;		image_x=fgetc16b(plik);		image_y=fgetc16b(plik);		}		if (wer ==3) return 1;		check_image(image_x,image_y,8);		printf("EPA Bios Logo%s\n",VEREPA);		printf("EPA %i.0 detected: %ix%i\n",wer,image_x,image_y); 		  if (wer==1) {    		    for (y=0;y<image_y;y++) {			for (x=0;x<image_x;x++) {			    tempi=fgetc(plik);			      for (enk=0;enk<14;enk++) {			          for (enk2=0;enk2<8;enk2++) {					attr[x+enk2][y+enk][0]=(tempi & 0xf0)>>4;					attr[x+enk2][y+enk][1]=(tempi & 0x0f);					}				}				x+=7;				}				y+=13;				}			for (y=0;y<image_y;y++) {		           for (x=0;x<image_x;x++)		            {			      for (wer=0;wer<14;wer++) {					tempi=fgetc(plik);				enk=(tempi & 0x80)>>7;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x40)>>6;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x20)>>5;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x10)>>4;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x08)>>3;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x04)>>2;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x02)>>1;				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x++;				enk=(tempi & 0x01);				tabr[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][0];				tabg[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][1];				tabb[x+((y+wer)*image_x)]=kolor[attr[x][y+wer][enk]][2];				x-=7;		           }			   x+=7;			   }		        y+=13;			  }		wer=1;		}    	    if (wer==2) {	    	      for (y=0;y<image_y;y++) {		for (x=0;x<image_x;x++) {				tempi=fgetc(plik);				tabb[y*image_x+x++]=(tempi & 0x80);		tabb[y*image_x+x++]=(tempi & 0x40)<<1;		tabb[y*image_x+x++]=(tempi & 0x20)<<2;		tabb[y*image_x+x++]=(tempi & 0x10)<<3;		tabb[y*image_x+x++]=(tempi & 0x08)<<4;		tabb[y*image_x+x++]=(tempi & 0x04)<<5;		tabb[y*image_x+x++]=(tempi & 0x02)<<6;		tabb[y*image_x+x]=(tempi & 0x01)<<7;						}		for (x=0;x<image_x;x++) {				tempi=fgetc(plik);				tabg[y*image_x+x++]=(tempi & 0x80);		tabg[y*image_x+x++]=(tempi & 0x40)<<1;		tabg[y*image_x+x++]=(tempi & 0x20)<<2;		tabg[y*image_x+x++]=(tempi & 0x10)<<3;		tabg[y*image_x+x++]=(tempi & 0x08)<<4;		tabg[y*image_x+x++]=(tempi & 0x04)<<5;		tabg[y*image_x+x++]=(tempi & 0x02)<<6;		tabg[y*image_x+x]=(tempi & 0x01)<<7;						}		for (x=0;x<image_x;x++) {				tempi=fgetc(plik);				tabr[y*image_x+x++]=(tempi & 0x80);		tabr[y*image_x+x++]=(tempi & 0x40)<<1;		tabr[y*image_x+x++]=(tempi & 0x20)<<2;		tabr[y*image_x+x++]=(tempi & 0x10)<<3;		tabr[y*image_x+x++]=(tempi & 0x08)<<4;		tabr[y*image_x+x++]=(tempi & 0x04)<<5;		tabr[y*image_x+x++]=(tempi & 0x02)<<6;		tabr[y*image_x+x]=(tempi & 0x01)<<7;						}		for (x=0;x<image_x;x++) {				tempi=fgetc(plik);		tabr[y*image_x+x]+=((tempi & 0x80)>>1);		tabg[y*image_x+x]+=((tempi & 0x80)>>1);		tabb[y*image_x+x++]+=((tempi & 0x80)>>1);		tabr[y*image_x+x]+=((tempi & 0x40));		tabg[y*image_x+x]+=((tempi & 0x40));		tabb[y*image_x+x++]+=((tempi & 0x40));		tabr[y*image_x+x]+=((tempi & 0x20)<<1);		tabg[y*image_x+x]+=((tempi & 0x20)<<1);		tabb[y*image_x+x++]+=((tempi & 0x20)<<1);		tabr[y*image_x+x]+=((tempi & 0x10)<<2);		tabg[y*image_x+x]+=((tempi & 0x10)<<2);		tabb[y*image_x+x++]+=((tempi & 0x10)<<2);		tabr[y*image_x+x]+=((tempi & 0x08)<<3);		tabg[y*image_x+x]+=((tempi & 0x08)<<3);		tabb[y*image_x+x++]+=((tempi & 0x08)<<3);		tabr[y*image_x+x]+=((tempi & 0x04)<<4);		tabg[y*image_x+x]+=((tempi & 0x04)<<4);		tabb[y*image_x+x++]+=((tempi & 0x04)<<4);		tabr[y*image_x+x]+=((tempi & 0x02)<<5);		tabg[y*image_x+x]+=((tempi & 0x02)<<5);		tabb[y*image_x+x++]+=((tempi & 0x02)<<5);		tabr[y*image_x+x]+=((tempi & 0x01)<<6);		tabg[y*image_x+x]+=((tempi & 0x01)<<6);		tabb[y*image_x+x]+=((tempi & 0x01)<<6);		}	      } 	    	    }/* debug */    for (y=0;y<image_y;y++) {	for (x=0;x<image_x;x++) {	 if (tabr[y*image_x+x]==256) tabr[y*image_x+x]-=4;	 if (tabg[y*image_x+x]==256) tabg[y*image_x+x]-=4;	 if (tabb[y*image_x+x]==256) tabb[y*image_x+x]-=4;	 if (tabr[y*image_x+x]==128) tabr[y*image_x+x]-=53;	 if (tabg[y*image_x+x]==128) tabg[y*image_x+x]-=53;	 if (tabb[y*image_x+x]==128) tabb[y*image_x+x]-=53;	          }       }    return 0;	}

⌨️ 快捷键说明

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