2010年1月12日 星期二

HW4



  這次與HW3的是差不多的,只是換成要讀取BMP檔裡面的每一點的值且顯示出來。
還有fopen,freed,fseek讀取RGB。
  剛開始在想LoadFromFile跟單純fopen去讀每一點的值差在哪,發現用後面這方法,多了一點東西,多了這fopen難度多了一些,老師說過之前我們學C語言程式設計時,沒有教到這些東西,所以現在在來學,我覺得多學一點東西是對自己有幫助的,當然不亦樂乎。
  這次作業第一次想到的是去讀每一點的值,程式做出來了,但是他讀好慢,之後老師有教一個ScanLine一次讀取一列的方法,好像快上許多,不過為了趕快交作業,有成品就趕快教出來囉!!

  用下面:從右下角讀上來瞄點,若由上往下圖會上下顛倒
 for(i=0;i
  {
 fseek (imBMP,offset,SEEK_SET);
 fread (bSize, 1, 3, imBMP);
 offset+=3;
 Image1->Canvas->Pixels[i][j]=(TColor)RGB(bSize[2],bSize[1],bSize[0]);
 }
  
從哪個點開始讀為什麼會顛倒,這問題想好久,後來就亂試,終於試到了,就把它相反一下
想不到就好了,之後問同學才知道
RAW檔儲存的順序是圖片的左下角到右上角!!!
  大概是插這幾列程式碼,其餘的大部分都跟第三次作業一樣!!
所以只要解決這一項,就差不多完成了,但是我有必要在去練習一下,
如何用
ScanLine來做,不然以後去職場遇到像素大一點的圖還在那邊一點一點讀,老闆都等到長白髮了。

 <不過已經把拍的圖存成JPG檔了,上傳還是好慢阿阿~不過把圖用小畫家切一下快很多>



沒有留言:

張貼留言