除了上課 主要還是請教同學
完成後很有成就感
雖然只有完成開啟圖片 這項功能
還有很多很多沒有學到的
希望在這堂課 可以學到更多相關的
-------------------------------------------------------
以上是我第一次打的
下面是我後來修改的(為了分數...很現實= =)
第一個作業老師部落格上就有重點
在Lee's C++ Builder Programming Notes 裡面image
就有寫到重點
這兩行是把圖片讀進myImage1(開啟 BMP 影像)
OpenPictureDialog1->Execute() ;
myImage1->Picture->LoadFromFile(OpenPictureDialog1->FileName)
利用宣告三個二維陣列 , 並用new配置記憶體空間 (動態宣告二維陣列)
ucRMatrix = new unsigned char *[iImageHeight];
ucGMatrix = new unsigned char *[iImageHeight];
ucBMatrix = new unsigned char *[iImageHeight];
for (int j=0;j { ucRMatrix[j] = new unsigned char [iImageWidth]; ucGMatrix[j] = new unsigned char [iImageWidth]; ucBMatrix[j] = new unsigned char [iImageWidth]; } 這是例外處理 跳出 catch (std::bad_alloc) { ShowMessage("Could not allocate memory...Bye"); exit(-1); } 這是用GetRValue和for迴圈抓取圖片的Pixels值取得RGB值分別存入二維陣列 ucRMatrix[x][y] = GetRValue(myImage1->Canvas->Pixels[x][y]); ucGMatrix[x][y] = GetGValue(myImage1->Canvas->Pixels[x][y]); ucBMatrix[x][y] = GetBValue(myImage1->Canvas->Pixels[x][y]); } 這個作業直接依靠老師的部落格就能動手完成 也是第一個作業 , 即使不熟bcb的同學 , 參考老師部落格就可以清楚 知道每個細節 , 這項作業是後面作業很重要的基礎 , 所以雖然之前寫 大概知道怎擺怎放 , 後來再打心得 , 才發現原來只是這樣 , 跟以前學的 c/c++觀念上根本完全相同 , 呈現方式不同罷了 , 我想這是我之後在寫心 得所發現的 -----------------------------1/19 (補) 老實說我一年級是學C語言 之後 是學java 與c++很不相同. 所以學起來很辛苦 c++是物件導向語言 , 多了可以建立實體物件的 資料結構也是學java的 那時候是 用類別class 裡面宣告 屬性 , 在主程式new實體物件 , 在用點(.) 例如:area.watch( int b) 來給初值或其他 c++ 是用箭頭(->) 所以一開始看到的時候 都霧煞煞 不過觀念都一樣 , 所以也沒有卡很久 用bcb之後 , 第一次用視窗化程式設計 來寫 , 不像以前都是開空白 #include ... 開始寫 第一次修老師的課 , 學到很多 , 不過自己"一開始"沒有花心思在上面 之後才再補齊課程內容 , 真的是很慚愧 .. 另外一提:try- catch 我從沒用過得說 例外我都是用if-else 如果要我憑空寫 我想我的程式碼應該一大串吧.. 還好有老師的部落格範例..XD
把我寫的東西弄上來還是我的呀!
回覆刪除要寫點自己的東西,
分數才會加啦 !