青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

bmp圖片格式學(xué)習(xí)(c++代碼)

 

//這個(gè)程序用來(lái)讀取256*256大小的單色bmp黑白圖片,適當(dāng)修改就可讀取任意大小任意
//顏色的bmp圖片,在生成文件里,0和1表示黑白,不過(guò)用記事本查看會(huì)有亂碼
//可以用UE查看16進(jìn)制形式,沒(méi)有問(wèn)題的
#include <fstream>
#include 
<iostream>
using namespace std; 
typedef unsigned 
char var8;
typedef unsigned 
int uvar32;
typedef unsigned 
short int uvar16;
typedef  
struct  { var8 Blue,Green,Red,Reserved;}  Palette;
int main()
{
  uvar32 Size,Offset,Height,Width,Compress,Reserved,
  InfoHeaderSize,Colors,ImportantColors,DataSize,HResolution,VResolution;
  uvar16 Planes,Bit;
  
int i,j;
  var8 type[
2],imdata[256][256],imdata2[1024];
  Palette Rgbquad;
  ifstream fin;
  ofstream fout;
  fin.open(
"test.bmp",ios::binary);   
  
/*以二進(jìn)制讀方式打開(kāi)該文件,一定要二進(jìn)制的!路徑為存儲(chǔ)圖片路徑*/
  fout.open(
"out.txt", ios::out|ios::binary);
  
//out.txt為保存結(jié)果文件,有趣的很,加上bmp數(shù)據(jù),改了后綴就能顯示了,我試過(guò)
  if(!fin)
  
{
    cout
<<"No this file!\n";
    
return 1;
  }

  
  fin.read((
char*)&type ,2);
  cout
<<"file type: "<<type[0]<<type[1]<<endl;
  
/* 兩字節(jié)的內(nèi)容用來(lái)識(shí)別位圖的類型,偏移量0,結(jié)果file type: BM*/
  fin.read((
char*)&Size ,sizeof(uvar32));
  cout
<<"file size: "<<Size<<endl;
  
/*整個(gè)文件的大小,偏移量2,結(jié)果file size: 8254*/
  fin.read((
char*)&Reserved,sizeof(uvar32));
  cout
<<"Reserved dword: "<<Reserved<<endl;
  
/*保留,必須設(shè)置為0, 偏移量6,結(jié)果Reserved dword: 0*/
  fin.read((
char*)&Offset  ,sizeof(uvar32));
  cout
<<"Offset: "<<Offset<<endl;
  
/*從文件開(kāi)始到位圖數(shù)據(jù)開(kāi)始之間的數(shù)據(jù)(bitmap data)之間的偏移量
   ,結(jié)果Offset: 62。位圖數(shù)據(jù)為256*256,
   65536(位圖數(shù)據(jù))+62*8(偏移量)=(文件大小)記得是bit位
*/

  fin.read((
char*)&InfoHeaderSize,sizeof(uvar32));
  cout
<<"Bitmap Info Header Size: "<<InfoHeaderSize<<endl; 
  
/*位圖信息頭(Bitmap Info Header)的長(zhǎng)度,偏移量14,
   結(jié)果 Bitmap Info Header Size: 40
*/

  fin.read((
char*)&Width,sizeof(uvar32));
  cout
<<"Bitmap Width: "<<Width<<endl;
  
/*位圖的寬度,以象素為單位,偏移量18,Bitmap Width: 256*/
  fin.read((
char*)&Height,sizeof(uvar32));
  cout
<<"Bitmap Height: "<<Height<<endl;
  
/*位圖的高度,以象素為單位,如果該值是一個(gè)正數(shù),說(shuō)明圖像是倒向的,
  如果該值是一個(gè)負(fù)數(shù),則說(shuō)明圖像是正向的。偏移量22,Bitmap Height: 256
*/

  fin.read((
char*)&Planes,sizeof(uvar16));
  cout
<<"Bitmap Planes: "<<Planes<<endl;
  
/*位圖的位面數(shù)(注:該值將總是1),偏移量26,Bitmap Planes: 1*/
  fin.read((
char*)&Bit,sizeof(uvar16));
  cout
<<"Bits per Pixel: "<<Bit<<endl;
  
/*每個(gè)象素的位數(shù),偏移量28,單色應(yīng)該1bit,Bits per Pixel: 1*/ 
  fin.read((
char*)&Compress,sizeof(uvar32));
  cout
<<"Compresssion Y or N: "<<Compress<<endl;
  
/*壓縮說(shuō)明0為不壓縮,偏移量30,Compresssion Y or N: 0*/
  
if(Compress) { fin.close();return 2;}
  fin.read((
char*)&DataSize,sizeof(uvar32));
  cout
<<"Data Size: "<<DataSize<<endl;
  
/*用字節(jié)數(shù)表示的位圖數(shù)據(jù)的大小,偏移量34,256*256/8=8192,
   Data Size: 8192
*/

  fin.read((
char*)&HResolution,sizeof(uvar32)); 
  cout
<<"HResolution: "<<HResolution<<endl;
  
/*用象素/米表示的水平分辨率,偏移量38,HResolution: 0*/
  fin.read((
char*)&VResolution,sizeof(uvar32));
  cout
<<"VResolution: "<<VResolution<<endl;
  
/*用象素/米表示的垂直分辨率,偏移量42,VResolution: 0*/
  fin.read((
char*)&Colors,sizeof(uvar32));
  cout
<<"Colors: "<<Colors<<endl;
  
//fout<<Colors;
  /*位圖使用的顏色數(shù),應(yīng)該為2,不過(guò)我試過(guò)很多次都輸出0,不影響的*/
  fin.read((
char*)&ImportantColors,sizeof(uvar32));
  cout
<<"ImportantColors: "<<ImportantColors<<endl;
  
/*指定重要的顏色數(shù)。當(dāng)該域的值等于顏色數(shù)時(shí)(或者等于0時(shí)),
  表示所有顏色都一樣重要。偏移量50,ImportantColors: 0
*/

  
for(i=0;i<2;i++)
  
{
      fin.read((
char*)&Rgbquad,sizeof(Palette));
      cout
<<int(Rgbquad.Blue)<<" "<<int(Rgbquad.Green)<<" "<<int(Rgbquad.Red)

<<"  "<<int(Rgbquad.Reserved)<<endl;
  
  }

  
/*調(diào)色板規(guī)范。對(duì)于調(diào)色板中的每個(gè)表項(xiàng),這4個(gè)字節(jié)用下述方法來(lái)
  描述RGB的值:1字節(jié)用于藍(lán)色分量 ,1字節(jié)用于綠色分量 ,1字節(jié)用于紅色分量 
  1字節(jié)用于填充符(設(shè)置為0),對(duì)于彩色圖像R,G,B
  有各自的分量,對(duì)與黑白圖像,R=G=B=灰度級(jí)。輸出結(jié)果有 0 0 0 0,
  255 255 255 0
*/

  fin.seekg(Offset,ios::beg);
  
  
for( i=255;i>=0;i--)
  
{
     
for(j=0;j<32;j++)
     

      fin.read((
char*)&imdata[i][j],sizeof(var8));
   fout
<<imdata[i][j];
     }

  }

  
  fout.close();
  
/*直接把8254個(gè)像素的灰度讀入數(shù)組imdata中,由于前面調(diào)色板的格式,讀出的數(shù)據(jù)無(wú)
需 索引調(diào)色板。由于Height值大于零,圖像倒置的,開(kāi)始讀入的數(shù)據(jù)是圖像最后一行的灰
度值。
*/

  
return 0;

}

posted on 2008-05-08 10:00 OIO 閱讀(5067) 評(píng)論(3)  編輯 收藏 引用

評(píng)論

# re: bmp圖片格式學(xué)習(xí)(c++代碼) 2009-04-23 17:33 老羊

真好!大有收獲!  回復(fù)  更多評(píng)論   

# re: bmp圖片格式學(xué)習(xí)(c++代碼) 2009-04-23 17:33 老羊

真好!大有收獲!
  回復(fù)  更多評(píng)論   

# re: bmp圖片格式學(xué)習(xí)(c++代碼) 2009-07-30 17:25 ablajan

nt main(int argc, char *argv[])
{
fstream fs;
fs.open(_T("文本.txt"));

fstream fw;
fw.open("text.txt");
char arr[LEN] = {0};
wchar_t temp[2*LEN+1] = {0};
int length;
if(!fs || !fw)
{
cout << "Error" << endl;
return -1;
}
while(!fs.eof())
{
fs.read(arr, sizeof(arr)-1);
cout << arr;
fw.write(arr, sizeof(arr)-1);
memset(arr, 0, sizeof(arr));

}
cout << endl;
fs.close();
fw.close();
return 0;
}
  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频免费看| 国产一区二区三区免费不卡| 久久精品国产一区二区三| 日韩午夜电影在线观看| 免费永久网站黄欧美| 欧美有码在线观看视频| 99热在这里有精品免费| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品亚洲一区| 欧美日韩中文| 欧美精品成人91久久久久久久| 久久久久久亚洲精品杨幂换脸| 亚洲免费一在线| 在线亚洲欧美| 99精品国产在热久久| 亚洲国产老妈| 欧美成人黄色小视频| 久久先锋影音av| 久久免费高清视频| 久久av资源网| 欧美在线3区| 欧美尤物巨大精品爽| 午夜在线一区二区| 亚洲欧美日韩国产| 午夜精品久久久久99热蜜桃导演| 亚洲一区精品视频| 亚洲小视频在线| 亚洲在线一区二区三区| 亚洲欧美文学| 欧美一级黄色网| 久久av一区二区三区| 欧美一区激情| 久久久久九九九| 麻豆精品一区二区综合av| 久久免费黄色| 欧美成人黑人xx视频免费观看 | 日韩一区二区免费高清| 亚洲人体一区| av成人国产| 在线视频你懂得一区二区三区| 在线一区二区三区四区五区| 国产精品99久久久久久宅男| 亚洲一区二区欧美日韩| 亚洲欧美日韩一区| 欧美资源在线| 鲁大师成人一区二区三区| 欧美aaa级| 欧美日韩无遮挡| 国产精品久久久一区麻豆最新章节| 国产精品免费看久久久香蕉| 国产视频观看一区| 在线观看日韩av电影| 亚洲伦理一区| 亚洲免费小视频| 久久夜色精品国产欧美乱极品| 欧美1区3d| 日韩亚洲欧美成人| 亚洲欧美一区二区三区久久 | 午夜亚洲伦理| 久久综合色播五月| 亚洲黄色免费网站| 亚洲午夜高清视频| 久久久99久久精品女同性| 欧美激情精品久久久久久| 欧美体内谢she精2性欧美| 国产日韩欧美视频在线| 亚洲韩国日本中文字幕| 亚洲视频在线一区观看| 久久久久成人精品| 亚洲激情成人网| 午夜一区二区三视频在线观看 | 国产精品入口| 在线观看91久久久久久| 在线一区二区日韩| 久久精品国产亚洲一区二区| 亚洲国产欧美精品| 亚洲欧美另类中文字幕| 欧美不卡在线| 国产日韩精品久久| 亚洲精品黄网在线观看| 久久成人羞羞网站| 亚洲国产高清aⅴ视频| 先锋影音久久久| 欧美福利视频在线| 国产午夜精品一区理论片飘花 | 欧美精品免费看| 国产午夜精品一区二区三区欧美 | 亚洲国产精品一区二区久| 亚洲一区二区三区成人在线视频精品| 久久男人av资源网站| 一区二区欧美视频| 美日韩精品免费| 国产欧美亚洲视频| 在线亚洲免费| 欧美va亚洲va国产综合| 亚洲欧美日韩精品| 欧美日韩hd| 亚洲激情在线视频| 美女91精品| 亚洲欧美卡通另类91av | 亚洲精选成人| 蜜臀久久久99精品久久久久久| 国产精品一区二区在线观看不卡| 亚洲伦理中文字幕| 免费中文日韩| 久久精品欧美日韩| 国产麻豆综合| 午夜亚洲福利| 这里只有精品丝袜| 欧美日韩国产区一| 亚洲精品中文字| 欧美黄色视屏| 久久一区免费| 亚洲第一黄网| 美女999久久久精品视频| 欧美一区二区三区视频免费| 国产精品久久一区二区三区| 一区二区三区视频观看| 亚洲国产一二三| 牛牛精品成人免费视频| 在线日韩中文| 欧美99在线视频观看| 久久九九国产精品| 黄色av日韩| 老司机午夜精品视频| 久久久99国产精品免费| 激情另类综合| 欧美a级片网| 免费观看成人网| 亚洲三级电影在线观看| 欧美激情亚洲视频| 欧美国产三区| 亚洲最新在线视频| 一区二区国产日产| 国产精品久久网| 久久精品视频在线看| 欧美在线视频网站| 亚洲第一免费播放区| 亚洲国产成人精品女人久久久| 欧美福利一区二区| 一区二区电影免费在线观看| aa日韩免费精品视频一| 国产精品久久国产精麻豆99网站| 小黄鸭视频精品导航| 性做久久久久久久久| 韩国av一区二区三区| 欧美国产激情| 欧美三级黄美女| 久久av资源网站| 久久婷婷国产综合国色天香| 亚洲精品一区中文| 亚洲午夜视频在线观看| 国产日韩欧美二区| 免费在线亚洲欧美| 欧美日韩日日骚| 欧美影院精品一区| 久久视频在线视频| 一区二区三区国产在线| 亚洲欧美日韩国产成人| 伊人久久亚洲影院| 亚洲精品乱码久久久久| 国产精品一区二区三区乱码 | 久久高清国产| 另类尿喷潮videofree| 夜夜狂射影院欧美极品| 亚洲欧美伊人| 亚洲国产精品久久人人爱蜜臀| 一本色道**综合亚洲精品蜜桃冫| 国产毛片一区| 亚洲黄一区二区三区| 国产精品日日摸夜夜添夜夜av| 欧美成人国产| 国产精品免费观看视频| 欧美二区视频| 国产精品久久亚洲7777| 欧美大秀在线观看| 国产精品久久亚洲7777| 亚洲成人在线视频播放 | 韩国av一区二区三区在线观看| 亚洲福利一区| 国产美女精品视频| 亚洲国内自拍| 国产在线观看一区| 夜夜嗨av色一区二区不卡| 一色屋精品亚洲香蕉网站| 一区二区冒白浆视频| 亚洲第一成人在线| 亚洲综合色在线| 亚洲免费观看高清完整版在线观看熊 | 翔田千里一区二区| 日韩视频中文| 久久久久一本一区二区青青蜜月| 亚洲欧美精品suv| 欧美国产精品一区| 久久夜色精品国产噜噜av| 国产精品久久久久影院色老大| 亚洲国产精品成人| 精品成人一区二区三区四区| 亚洲综合第一| 亚洲永久精品国产|