全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1578
推到 Plurk!
推到 Facebook!

顯示出來的圖為何上下顛倒

尚未結案
kimogi
一般會員


發表:18
回覆:10
積分:5
註冊:2005-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-23 14:03:29 IP:218.168.xxx.xxx 未訂閱
我想要將24位元bmp轉成raw data並顯示出raw data的圖  
  if(!OpenDialog1->Execute()) {return;}
  fptr=fopen(OpenDialog1->FileName.c_str(),"rb");
  BITMAPINFOHEADER bmp1;
  fseek(fptr,14,0);
  fread(&bmp1,sizeof(bmp1),1,fptr);      int temp=(bmp1.biWidth)*3%4;
  Byte *pixel_store = new Byte [bmp1.biWidth* bmp1.biHeight*3];
 
  for(int y=0;yPosition=0;
 ms->Write( pixel_store, bmp1.biWidth* bmp1.biHeight*3 );
 ms->SaveToFile("data80.raw");
 delete ms;
 delete pixel_store;
接著是我顯示圖的程式碼,圖檔都是256*256
 
if(!OpenDialog1->Execute()) {return;}
fptr=fopen(OpenDialog1->FileName.c_str(),"rb");    for(int y=0;y<256;y  )
{
        for(int x=0;x<256;x  )
      {
          fread(&b,1,1,fptr);
         
          fread(&g,1,1,fptr);
          fread(&r,1,1,fptr);
          Image1->Canvas->Pixels[x][y]=TColor(RGB(r,g,b));
      }
}
不懂為什麼圖會顛倒,是顯示部分錯了,還是讀像素時錯了,謝謝解答^^
poaivy
中階會員


發表:40
回覆:78
積分:53
註冊:2004-08-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-24 03:49:44 IP:140.117.xxx.xxx 未訂閱
您好: 請參考http://cyber.cs.ntou.edu.tw/~b88031/library/image/bitmap1.html    裡面提道BMP在儲存影像時,資料記錄及讀取都是由圖片的左下到右上(figure 1), 因為你是讀取BMP的數據 所以才會出現您所說的那個現象吧
kimogi
一般會員


發表:18
回覆:10
積分:5
註冊:2005-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-24 13:51:47 IP:203.70.xxx.xxx 未訂閱
poaivy大大~感謝~原來疏忽了這小地方
系統時間:2024-03-29 22:18:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!