-
大小: 172KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-12
- 語言: 其他
- 標(biāo)簽: 24位BMP??轉(zhuǎn)16位??565格式??
資源簡介
本代碼實(shí)現(xiàn)了24位BMP圖片轉(zhuǎn)565格式16位數(shù)組C文件,用法: 24to16 filename.bmp 生成:16filename.bmp 生成的16filename.bmp只能用附件中的“畫圖”打開!

代碼片段和文件信息
//?24to16.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include
#include
#define?DATA?0x46
int??ch24_16(char?crchar?cg?char?cb);
void?cursor(char?*filename?int?x?int?y?int?w?int?h);
unsigned?char?head[]={
0x420x4d0x460x000x180x000x000x000x000x000x460x000x000x000x380x00
0x000x000x000x040x000x000x000x030x000x000x010x000x100x000x030x00
0x000x000x000x000x180x000xc40x0e0x000x000xc40x0e0x000x000x000x00
0x000x000x000x000x000x000x000xf80x000x000xe00x070x000x000x1f0x00
0x000x000x000x000x000x00};
unsigned?long?*FileSize?=?(unsigned?long?*)?(head?+?2);
unsigned?long?*Width?=?(unsigned?long?*)?(head?+?0x12);
unsigned?long?*Height?=?(unsigned?long?*)?(head?+?0x16);
?
int?main(int?argc?char*?argv[])
{
??unsigned?long?i?datalen;
??FILE?*fp1?*fp2;
??char?file2[15]?=?“16“;?
??unsigned?char?crcgcb;
??int???data24?color16;
??if(argc?2){printf(“Useage:24to16?file1.bmp\n“);?exit(1);}
??fp1?=?fopen(argv[1]?“rb“)?;
??strcat(file2argv[1]);
??fp2?=?fopen(file2?“wb“);
??fseek(fp1?0x0a?0);
??data24?=?fgetc(fp1);
??fseek(fp1?0x12?0);
??fread((void*)Width41fp1);
??fread((void*)Height41fp1);
??datalen?=?*Width?*?*Height;
??*FileSize?=?datalen?*?2?+?DATA;
??for(i?=?0;?i??????????????fputc(head[i]fp2);
??fseek(fp1?data24?0);
??while(!feof(fp1))
??{
????cr=fgetc(fp1);
????cg=fgetc(fp1);
????cb=fgetc(fp1);
????color16?=?ch24_16(crcgcb);
fwrite((void*)&color1621fp2);
??}
??fclose(fp1)?;
??fclose(fp2)?;
??cursor(file21001003015);
? return?0;
}
int?ch24_16(char?crchar?cg?char?cb)
{
????int??re;
????
??????re?=?((((int)cb)<<8)&0xf800)|((((int)cg)<<3)&0x07e0)|((((int)cr)>>3)&0x001f);
?
????return?re;
}
void?cursor(char?*?filename?int?x?int?y?int?w?int?h){
??char?filebuf[1024];
??FILE?*fp1?*fp2;
??int?width;
??if(w?*?h?*?2?>?1024){printf(“%d?*?%d?Area?is?to?big!“wh);return;}
??fp1?=?fopen(filename?“rb“)?;
??fseek(fp1?0x12?0);
??fread((void*)Width41fp1);
??width?=?(int)(*Width);
??fread((void*)Height41fp1);
??for(int?i?=?0;?i??????????fseek(fp1?DATA?+?((y?+?i)?*?(width)?+?x)*?2?0);??//Width?replace?by?xres
?fread((void?*)(filebuf?+?w?*?i?*2)?w?*?2?1?fp1);
??}
??for(i?=?0;?i?1024;?i++)filebuf[i]?=?~filebuf[i];
??rewind(fp1)?;
??fp2?=?fopen(“try.bmp“?“wb“)?;
???while(!feof(fp1))
??{
????fputc(fgetc(fp1)fp2);
??}
???rewind(fp2);
??for(i?=?0;?i??????????fseek(fp2?DATA?+?((y?+?i)?*?(width)?+?x)*?2?0);??//Width?replace?by?xres
?fwrite((void?*)(filebuf?+?w?*?i?*2)?w?*?2?1?fp2);
??}
??fclose(fp1)?;
??fclose(fp2);
? return;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2753??2012-12-12?11:18??24to16\24to16.cpp
?????文件???????4536??2012-11-20?20:06??24to16\24to16.dsp
?????文件????????518??2012-11-20?20:11??24to16\24to16.dsw
?????文件??????50176??2012-12-12?11:20??24to16\24to16.ncb
?????文件??????48640??2012-12-12?11:20??24to16\24to16.opt
?????文件???????1671??2012-12-12?11:19??24to16\24to16.plg
?????文件?????184371??2012-12-12?11:19??24to16\Debug\24to16.exe
?????文件?????190004??2012-12-12?11:19??24to16\Debug\24to16.ilk
?????文件???????6703??2012-12-12?11:19??24to16\Debug\24to16.obj
?????文件?????203728??2012-12-12?11:19??24to16\Debug\24to16.pch
?????文件?????377856??2012-12-12?11:19??24to16\Debug\24to16.pdb
?????文件???????1832??2012-12-12?11:19??24to16\Debug\StdAfx.obj
?????文件??????41984??2012-12-12?11:19??24to16\Debug\vc60.idb
?????文件??????53248??2012-12-12?11:19??24to16\Debug\vc60.pdb
?????文件???????1208??2012-11-20?20:06??24to16\ReadMe.txt
?????文件????????293??2012-11-20?20:06??24to16\StdAfx.cpp
?????文件????????769??2012-11-20?20:06??24to16\StdAfx.h
?????目錄??????????0??2012-12-12?11:19??24to16\Debug
?????目錄??????????0??2012-12-12?11:20??24to16
-----------?---------??----------?-----??----
??????????????1170290????????????????????19
評(píng)論
共有 條評(píng)論