2009年10月20日 星期二

HW2

1

程式版本0.02 alpha
更新: 1.增加24位元轉8位元灰階影像功能
2.增加一鍵隱藏畫布
3.增加進度列以了解轉換圖檔進度
4.檢查載入圖檔的bitmap值

這禮拜又學到了一個新的東西關於bitmap的影像格式
根據wiki的資料
BMP這個格式是由微軟開發,用於視窗程式上的一種簡單的圖像存檔格式
因為BMP並不做壓縮的動作所以檔案會很大
存檔格式分別為下列(以一張圖作範例)

範例圖:

龜山島,台灣宜蘭 (Turtle Island in Ilan, Taiwan)
這張是宜蘭外海龜山島的龜首(講"頭"好像有點怪怪的...)

1位元
只有兩種顏色黑與白
因為儲存資訊就只有0或是1,所以非黑即白
bitmap1
4位元
2^4=16以這個格式儲存只有16種顏色可選擇
bitmap4
8位元
2^8=256
有256種顏色可選擇的灰階圖
bitmap8
16位元
2^16=65536
從16位元開始影像可以存為彩色影像,但仍然可看到色快出現,因為可選擇的顏色仍然太少
bitmap16
24位元
2^24=16777216
一般全彩的影像通常都是用這個格是在儲存的
bitmap24
32位元
2^32=4294967296
基於24位元原本的顏色亮外再加8位元用來表示顏色的Alpha值
bitmap32

作業部分:
這次作業要做的是將一個24bit的全彩圖轉成8bit的灰階圖
老師直接告訴我們公式如何做轉換

灰階值=(R+G+B)/3

所以腦袋馬上有個想法
直接開兩個陣列去圖檔每個像素點套用以上的公式
得到的程式碼大概是長這樣(這只是概念碼,完整的還要加一些東西)
2

執行結果:
3
就這樣完成了第二周的作業
不過有遇到了個問題是
右邊那個畫布當載入比它大的檔案時沒有辦法AutoScroll
經過反覆的檢查設定是一樣的
但是它還是不會自動作改變
這是一個還蠻奇怪的現象
重拉一次元件也是同樣的情形
有誰能告訴我這是為啥嗎?

沒有留言:

張貼留言