2012年1月5日 星期四

HW3

第三次的作業看了同學們的範例大概知道要怎麼寫,但是由於我主程式的程式碼實在有點亂,所以我就另闢一個新天地來存放這次的作業,而不透過主程式。

一、首先點開主程式後打開回家作業裡的"Color Model"

二、點開之後可以看到已經有三塊色塊,這是在上課時寫的,
左上角的色塊為紅藍漸層,右上為藍綠漸層,右下為紅綠漸層,
左下角有兩個Bar,上可以調整三個色塊的缺少色,下則是將色塊轉為HSI Model

三-1、我們先調整RGB Bar 可以看到缺少色增加後的效果
將游標移進色塊中就可以得知每個點的RGB值,下圖為游標在右上色塊某個點上,
我們可以明確得知這個點RGB值的R值為0,也就是缺少紅色。
【游標在右上色塊某個點上,RGB值的R值為0】

加上缺少色就是左上加上綠色,右上加上紅色,右下加上藍色
以下為加上後的結果,以128及255為例。
【RGB Bar Value=128】 
【RGB Bar Value=255】

我們可以看到RGB Bar在調整後,色塊間銜接的縫隙就出現了,不像Value=0時這麼漂亮,這是因為色塊間怎麼去去呈現增加後的值我調整很久還是調整不好,但結果是正確的就好。
【游標在右下角某點時,缺少色藍色值=RGB Bar Value=255】

三-2、接下來輪到HSI Bar 轉換公式如同老師上課及wiki上所言,這裡不贅述。
HSI Bar 調整的是I值。
 【HSI Bar Value=63 AND RGB Bar Value=0】
 【HSI Bar Value=255 AND RGB Bar Value=255】

四、接下來就是要指定一張圖片並將顏色重新給定
我們先載入一張圖片,載入時並將之轉換為灰階。

接下來只要在左邊色塊任意點選一點,即可將顏色重新給定。


以上就是這次作業的成果。
其實這個作業沒有遇到太大的困難,有一部份在上課就已經寫好了,
轉HSI公式部分其實網路資料相當豐富,將維基百科裡的公式套用進程式就可以了,
其他同學可以把色彩模型轉為漂亮的圓形,但是我倒是沒想過要做(光想到要畫圓就頭痛)。

有些同學反應在最後調整圖形色彩時濃度越來越深變黑的問題,我一開始也有遇到,
但是後來將調整的BITMAP NEW一個執行個體再去調整就不會影響到原本的BITMAP了。
不過這個解法是.NET的解法,BCB如何解決就請其他同學參考其他人的解法囉 : )。





沒有留言:

張貼留言