資源簡(jiǎn)介
讀出BMP文件,并以txt的形式進(jìn)行保存
或者執(zhí)行相反的過(guò)程
或者執(zhí)行相反的過(guò)程
代碼片段和文件信息
#include???“bmp.h“
#include????
#include??????
#include???
#include???
BYTE?bitread(BYTE?*?bmpdatabyteint?rownumberint?columnnumberint?offset?int?LineWidth)//按位讀0/1
{
switch(offset)
{
case?0:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x80)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?1:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x40)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?2:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x20)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?3:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x10)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?4:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x08)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?5:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x04)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?6:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x02)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
case?7:
{
if?((bmpdatabyte[rownumber*LineWidth+columnnumber]?&?0x01)?==?0)
{
return?0;
}
else
{
return?1;
}
break;
}
default:
{
return?0;
break;
}
}
}
void?main()
{
BMPHEAD??bmpheader;
FILE?????*fp;
PaleSize?paleheader;
if((fp?=?fopen(“./kdc.bmp““rb+“))?==?NULL)
{
printf(?“open???file??Failed!?“?);
return?;
}
/***讀入bmp文件(包括頭信息)*****/
fread(&bftype?sizeof(WORD)?1?fp);
????fread(&bmpheader?sizeof(bmpheader)?1?fp);
fread(&paleheadersizeof(paleheader)1fp);
????
int?LineWidth?=?((bmpheader.biWidth*bmpheader.biBitCount+31)/32*4);//計(jì)算bmp實(shí)際數(shù)據(jù)寬度
printf(“the?size?of?headers?is?:?%d\n“?LineWidth);
????/***讀入bmp數(shù)據(jù)到bmpdatabyte***/
BYTE????*?bmpdatabyte?=?(BYTE?*)malloc(bmpheader.biHeight?*?LineWidth);
BYTE????*?bmpdatabit??=?(BYTE?*)malloc(bmpheader.biHeight?*?bmpheader.biWidth);
memset??(bmpdatabyte?0?bmpheader.biHeight?*?LineWidth);
????memset??(bmpdatabit??0?bmpheader.biHeight?*?bmpheader.biWidth);
fseek(fpbmpheader.bfoffBits?SEEK_SET);
fread(bmpdatabyte??bmpheader.biHeight*LineWidth??1??fp);
printf(“BMP文件高度為:%-d?寬度為:biWidth=%-d\n“bmpheader.biHeightbmpheader.biWidth);
int?byterowbytecolumnoffset;
for?(byterow=0;byterow {
for?(bytecolumn=0;?bytecolumn<(bmpheader.biWidth/8);?bytecolumn++)
{
for?(offset=0;offset<8;offset++)
{
bmpdatabit[byterow?*?bmpheader.biWidth?+?8?*?bytecolumn?+?offset]?=?bitread(bmpdatabytebyterowbytecolumnoffsetLineWidth);//讀bmpdatabyte[(i)+(j)]的第k位數(shù)
if?((8?*?bytecolu
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????8441??2008-01-30?13:25??BMPwrite\bmp.cpp
?????文件???????3423??2008-01-17?13:54??BMPwrite\bmp.dsp
?????文件????????531??2008-01-17?13:54??BMPwrite\bmp.dsw
?????文件?????184402??2008-01-21?19:37??BMPwrite\bmp.exe
?????文件???????1030??2008-01-18?09:19??BMPwrite\bmp.h
?????文件??????58368??2008-01-21?19:49??BMPwrite\bmp.ncb
?????文件??????54784??2008-01-21?19:49??BMPwrite\bmp.opt
?????文件???????1799??2008-01-21?19:37??BMPwrite\bmp.plg
?????文件?????184402??2008-01-21?19:37??BMPwrite\Debug\bmp.exe
?????文件?????189744??2008-01-21?19:37??BMPwrite\Debug\bmp.ilk
?????文件??????11659??2008-01-21?19:37??BMPwrite\Debug\bmp.obj
?????文件?????235384??2008-01-18?09:19??BMPwrite\Debug\bmp.pch
?????文件?????476160??2008-01-21?19:37??BMPwrite\Debug\bmp.pdb
?????文件??????58368??2008-01-21?19:37??BMPwrite\Debug\vc60.idb
?????文件??????69632??2008-01-21?19:37??BMPwrite\Debug\vc60.pdb
?????文件????????134??2008-01-25?10:32??BMPwrite\kdc.bmp
?????文件????????134??2008-01-25?10:33??BMPwrite\kdc_recover.bmp
?????文件?????182010??2008-01-17?12:15??BMPwrite\用C語(yǔ)言實(shí)現(xiàn)讀取BMP單色位圖并另存?。ㄇ笾。?C-C++?-?C語(yǔ)言?-?CSDN社區(qū)?community_csdn_net.mht
?????文件??????29696??2008-01-17?11:29??BMPwrite\資料\BMP文件結(jié)構(gòu).doc
?????文件??????64207??2007-12-21?09:32??BMPwrite\資料\BMP文件結(jié)構(gòu).pdf
?????文件????????350??2008-01-18?12:34??BMPwrite\資料\kdc.bmp
?????文件????????350??2008-01-21?19:36??BMPwrite\資料\kdc_recover.bmp
?????文件???????4300??2008-01-30?13:25??BMPread\bmp.cpp
?????文件???????3365??2008-01-21?10:10??BMPread\bmp.dsp
?????文件????????531??2008-01-21?10:12??BMPread\bmp.dsw
?????文件???????1030??2008-01-17?16:04??BMPread\bmp.h
?????文件??????50176??2008-01-30?11:05??BMPread\bmp.ncb
?????文件??????54784??2008-01-30?11:05??BMPread\bmp.opt
?????文件???????1530??2008-01-30?11:01??BMPread\bmp.plg
?????文件??????33792??2008-01-21?12:07??BMPread\bmpread.ncb
............此處省略27個(gè)文件信息
評(píng)論
共有 條評(píng)論