灰階
128色
16色
8色
4色
心得:
做這份作業時,在星期五上課前,我看到這題目,我原本是以為把調色盤的迴圈部分,看他要幾種顏色就跑幾次,所以我在家裡試的時候,怎麼跑都跑不出來,當時以為我問題出在,不會把Timage所新增的原件用成全域變數,所以一直在改這部分,也一直用任何方法嘗試,結果還是不行。
而今天去上課後,看到老師一開始講的演算法,才知道我原本以為的都是錯的,原來是這麼一回事,知道說怎麼去算他每隔的間距,和每隔間距應該要採用的像數是多少,而一開始我也卡在不知道說轉灰階後的圖片中,每一點的像數要怎麼取出來,一直在RGB裡面打轉,之後才知道bPtrImageRow2[i]這行,利用迴圈他可把每一點像數放在裡面,因此才可以進行下面的if作法,而我是先在紙上算出來,在把它每段範圍用一個if給他判斷要給他什麼顏色。
而if裡面我原本是寫這樣子
後來才知道這樣子是錯的,因為灰階只有一個像數,不需要乘以3。
之後我繼續用這個方法繼續打接下來的4色、8色、16色,到了32色覺得if越來越多,但又找不到他的規律,也不會用for迴圈,本來想硬拼的,好險老師在下課前幾分鐘,教我們用調色盤的方式,真的是簡單許多,只要用下面幾行,先算每段的距離,再算每段所要取的顏色,之後用一個陣列立刻幫你做完,而只要在調色盤那調整過,其他都一樣,因此程式變得簡單多了。
雖然這次的作業不是自己想出來這樣子打,不過在這兩堂課中,透過和朋友的討論,加上老師的指導,我有學到東西,也知道怎麼去計算。
沒有留言:
張貼留言