2009年10月23日 星期五

HW1 - 開啟一張bmp圖片。

(首先,這麼慢才PO文,抱歉,因為研究了很久...囧)

  這次的作業是開啟一張bmp圖片,並且把RGB的值取出存入三個二維動態陣列儲存,且滑鼠在圖片上移動時,可以隨著滑鼠移動顯示圖片該點的RGB值。實作的流程和幾個比較重要的語法如下:

-------------------------------------------------------------
1.開啟一張bmp圖片
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);

2.取得圖片寬高
Height = Image1->Picture->Height;
Width = Image1->Picture->Width;

3.宣告三個二維動態陣列
IMatrixR = new unsigned char *[Height];

4.取得圖片RGB值分別存入陣列
IMatrixR[i][j] = GetRValue(Image1->Canvas->Pixels[j][i]);

5.使用OnMouseMove把滑鼠移動到的點的RGB值輸出
Label4->Caption = AnsiString(GetRValue(Image1->Canvas->Pixels[Y][X]));
-------------------------------------------------------------
實作:
開圖(點圖放大)↓


秀圖(點圖放大)↓


心得:

  一開始因為第一次接觸這個程式語言,光是一些初步的問題,如:怎麼輸出一段文字、要在哪個區塊打程式碼...等,就快把我搞掛了,不過我的個性比較衝動,所以下課鐘響就馬上衝到圖書館借了一本BCB的書,書中提到了簡單的操作,演練之後有了初步瞭解,發現它的邏輯其實與學過的C語言差不多,但它是屬於視窗化的程式設計語言,再加上使用到的函式語法不少,所以不知道的語法就要上網去找一下嚕。

  這次實作大部分是參考老師和學長的程式碼外加書上的範例,卡關最久的地方就是隨滑鼠移動顯示值,這個部份的實作方式就是在顯示圖的物件上點一下再到左邊的小視窗,把標籤切換到"Event"後,有個叫"OnMouseMove"的欄位,在空白欄位上快點兩下,就會在程式碼那看到一個空白的副函式,它的宣告變數中就有X和Y,所以猜想可以利用這兩個變數去控制顯示滑鼠目前所在的位置的值,結果答對了~哈哈。

沒有留言:

張貼留言