예제 #1
0
int main(int argc, _TCHAR* argv[])
{
	HWND hwnd=GetForegroundWindow();//直接获得前景窗口的句柄         
	SendMessage(hwnd,WM_SETICON,ICON_BIG,(LPARAM)LoadIcon(NULL,IDI_QUESTION)); 

	FILE * fbmp;
	if(!(fbmp=fopen("sys_g_base022.bmp", "rb")))
	{
		cout<<"No Such File!"<<endl;
		return -1;
	}

	bmp_header_t bmp_header = GetBmpInfo(fbmp);

	BYTE* data = new BYTE[bmp_header.datasize];
	BYTE* rawdata = new BYTE[bmp_header.datasize];

	GetBmpData(fbmp, data, bmp_header);

	RecoverData(rawdata, data, bmp_header);

	unsigned int extra_size = bmp_header.datasize / 0x0f;
	unsigned int extra = bmp_header.datasize % 0x0f;
	DWORD size;
	if(extra != 0)
		size = bmp_header.datasize + extra_size + 1;
	else
		size = bmp_header.datasize + extra_size;

	BYTE* epadata = new BYTE[size];

	Epa_Encompress(epadata, rawdata, bmp_header.datasize);

	FILE* fepa;
	if(!(fepa=fopen("sys_g_base022.epa", "wb")))
	{
		cout<<"Can not Create File!"<<endl;
		return -1;
	}

	fwrite(epadata, 1, size, fepa);

	cout<<"OK!"<<endl;
	delete[]data;
	delete[]rawdata;
	delete[]epadata;

	fclose(fbmp);
	fclose(fepa);

	system("pause");
	return 0;
}
예제 #2
0
int main(int argc, char *argv[])
{
	if (argc != 4)
	{
		printf("usage: %s in.epa out.bmp out.epa\n", argv[0]);
		return -1;
	}
	FILE * fbmp;
	if (!(fbmp = fopen(argv[2], "rb")))
	{
		printf("No Such File!\n");
		return -1;
	}

	bmp_header_t bmp_header = GetBmpInfo(fbmp);

	BYTE* data = new BYTE[bmp_header.datasize];
	BYTE* rawdata = new BYTE[bmp_header.datasize];

	GetBmpData(fbmp, data, bmp_header);

	RecoverData(rawdata, data, bmp_header);

	unsigned int extra_size = bmp_header.datasize / 0x0f;
	unsigned int extra = bmp_header.datasize % 0x0f;
	DWORD size;
	if (extra != 0)
		size = bmp_header.datasize + extra_size + 1;
	else
		size = bmp_header.datasize + extra_size;

	BYTE* epadata = new BYTE[size];

	Epa_Encompress(epadata, rawdata, bmp_header.datasize);

	FILE *fepa_in;
	FILE *fepa_out;

	if (!(fepa_out = fopen(argv[3], "wb")))
	{
		printf("Can not Create File!\n");
		return -1;
	}
	if (!(fepa_in = fopen(argv[1], "rb")))
	{
		printf("No Such File!\n");
		return -1;
	}

	epa_header_t epa_in;
	fread(&epa_in, sizeof(epa_header_t), 1, fepa_in);
	if (epa_in.epa1.mode == 1)
	{
		fwrite(&epa_in.epa1, sizeof(epa1_header_t), 1, fepa_out);
	}
	else
	{
		fwrite(&epa_in.epa2, sizeof(epa2_header_t), 1, fepa_out);
	}
	fwrite(epadata, size, 1, fepa_out);

	printf("Finished!\n");
	delete[]data;
	delete[]rawdata;
	delete[]epadata;

	fclose(fepa_in);
	fclose(fbmp);
	fclose(fepa_out);

	return 0;
}