2010年1月15日 星期五

HW4


  這次的作業是讀取一張 BMP 影像,將影像內容顯示於影像元件裡。
  利用老師給的範例程式來完成這次的作業,因為老師都有上註解,所以讀起來也會比較容易了解。比較好奇的是程式最後要 unsigned char ucFileEnd[2]; 宣告 2 個變數,我想應該是在存成 bmp 檔時, 每一行最後會補上 2 bytes。也正如老師所講的是 4 的倍數的彩色影像,我覺得應該是這樣的解釋。
  然後這程式是使用OpenPictureDialog1->Execute();的開檔方式,再讀圖片的每一個點並將其顯示出來,這是這一部分的程式碼

for(j=iImageHeight;j>0;j--)
for(i=0;i
{
fseek (imBMP,offset,SEEK_SET);
fread (bSize, 1, 3, imBMP);  
//讀B,G,R
offset+=3;
Image1->Canvas->Pixels[i][j]=(TColor)RGB(bSize[2],bSize[1],bSize[0]);
}


描點是從圖片的後面,也就是右下角開始瞄點,若從前面讀,圖就會顛倒過來,搞懂這個也花了我不少時間,不過也學到了不少東西,然後其它的部分就跟之前差不多了。

沒有留言:

張貼留言