2012年6月4日 星期一

HW03

這次是第三次的作業 是上次作業龍珠的加強版
也就是選擇相框

首先一開始必須先挑選需要使用的相框圖1-2
而我想說為了要方便讓程式辨認
所以將我想要透明的部分改為黑色

修圖的部分必須注意一個小細節
就是如果是使用Photoshop修圖的話 在存檔之後
使用程式讀取 會一直發生error無解的bug
但是使用小畫家的話卻不會這樣
所以我嘗試先使用Photoshop來修圖比較方便之後再使用小畫家開起
存成bmp後這個問題就解決了!!
事實證明小畫家還是很好用 薑還是老的辣!!

進入程式部分我遇到了一個問題而且debug很久,明明確定都沒有錯的問題
程式一直顯示 ScanLine out of range!!
通常遇到這樣大概都是直覺去找尋值哪裡錯誤
沒錯 我也是這樣!!!但是找了很久 就是真的沒有錯誤
突然靈機一動看到!!
原來我讀取的是"JPG格式"
沒錯 雖然可以讀取JPG格式 但是在程式裡卻只能使用BMP執行!!

解決了這些小小的蠢問題後就是開始RUN之後出現的BUG

一開始會發現怎麼畫面右方怪怪的 如圖1-1
1-1 畫面錯誤圖
1-2 相框原圖

原本的相框1-2 應該長這樣,但是顯示出來右邊卻變成好像是另一張圖疊到
經過與老師的討論發現!!
原來是我的大小陣列設錯了
unsigned char ucPhotoFrameRGB[2][640][480][3]; 
unsigned char ucPhotoFrameYUV[2][640][480][3];

程式碼中 第一個為編號 接下來為長*寬 第四個為使用RGB三種顏色
但是因為我是參考老師的範例程式 沒有看清楚原來 I、J 的變數是相反的
也就是說我應該要改成
unsigned char ucPhotoFrameRGB[2][480][640][3]; 
unsigned char ucPhotoFrameYUV[2][480][640][3];

這樣就會變為正常的大小了圖1-3
1-3 正常相框顯示圖

 1-4 相框2樣式圖

為了想要增加程式的多元性
所以我利用了上禮拜所教的點選功能+改變編號
來進行快速選擇多個相框 隨興想要換哪個就換哪個很方便
1-5 灰階模式圖

第二個部分就是要將顯示的模式調為灰階 圖1-5
這個比較簡單一點 只要稍微改一下YUV的部分 改成128就可以了

比較麻煩的是進階 要選取可以自己想要的色彩
就像是市面上很多手機APP那樣拍完照還可以調整看是要哪個模式
復古、鮮紅、海洋藍等等 
就是類似那樣的功能
首先必須先拉出一個Colordialog物件
重點就是這邊 要寫一小段可以呼叫初選取顏色的介面圖1-7
這樣的話 其他就可以用跟灰階模式的方式寫出來了!!
1-6 選取彩色模式圖

1-7 復古模式圖

1-8 復古籃模式圖

到這裡就大功告成了
不過我以為這樣就結束了 沒想到出現令我無言的事情
到學校開程式竟然無法打開
我的是2010的BCB 用學校的XE版本竟然無法開啟 會一直顯示
  ScanLine out of range!!
但是根本沒有錯
結果使用BCB6的版本卻又可以使用
這次又真的證明 
薑還是老的辣 嘖嘖

沒有留言: