2008年12月18日 星期四

C++ Builder專案 Check Point

執行檔下載


版圖配置

我終於找到TrackBar的刻度了~
原本TrackBar直接拉上來是不會有刻度的....
要更改Align的屬性...
然後TrackBar就會有刻度在了~

執行過後的初始



我有看到老師回答同學的問題~
關於Button在還沒有把圖讀進去之前...
不否可以變成不能按的狀態~?

這只要改 Enabled的屬性就好了~
一開始先調成false...
然後在開啟圖檔的後面那~
打上 Button1->Enabled = true;
當程式跑到那的時候~
就會順便把Button給打開了~

順帶一提TrackBar也有這個屬性的存在~
用法也是一樣的~

灰階


負片

這上課都教過了...
就不在多說~!!

上下顛倒



左右顛倒


當初在跑上下顛倒的時候~
很怪...
因為左右相反可以過~
可是相同的東西放到上下顛倒就會有錯~
後來才發現...
for (i=0;i<iimageheight;i++)
i是0~iImageHeight-1
而不是0~iImageHeight
所以tempR[i][j] =ucMatrixR[iImageHeight-i][j]; 當然錯~
因為根本就沒有ucMatrixR[iImageHeight-i][j]這樣行
ucMatrixR陣列的最後一行是....[iImageHeight-i-1]
而不是[iImageHeight-i]!!
可是我到現在還是想不透~
為什麼上下不能跑~
但是左右卻不用-1 就能跑~"~!?
浮水印

我有把mark白色的部分去掉~
在弄在圖片上~
因為學校的logo有部分的白是不是純白...
所以去掉純白之後的校徽看起來破破爛爛的好醜= =+
去掉純白很簡單~
就在執行logo+上原圖的點/2之前~
先套上一個IF...
if(mMatrixR[i][j]==255 && mMatrixG[i][j]==255 && mMatrixB[i][j]==255)
為什麼要設定3個值呢!?
因為彩色圖的白色是RGB三個顏色都等於255的時候~
我在寫這的時候~
發生一件蠻好笑的事...
就是我把255記成256 囧
然後整個人就在那跑了好久~"~
最後還是同學幫我抓出來的~
至於把logo放在右下角....
就要改for迴圈裡的東西~
他的想法就是...
要放在右下角~
所以執行第一個點的時候~
就要底圖從最後一行的最後一列減去logo的大小....
就會是開始處裡的第一個點~
這樣想很簡單對吧?
可是實際上操作起來卻有難度在~
因為只有那幾個點是需要特別處裡的~
那其他不用處裡的點呢!?
就要另外再寫一個for迴圈~
放在處裡浮水印的for迴圈前面~
然後後面還要再放一個迴圈把所有處裡好的點放到image裡面~
所以前前後後一共要3個迴圈~
而且中間的迴圈還要做if else的判斷~
我ㄧ開始很白痴~
把處裡其他點的迴圈~
寫在浮水印迴圈的後面~
然後...
跑出來的東西當然是....
沒有處裡過的圖~QQ
因為處裡好的東西~
又被沒處裡的覆蓋掉了= =
後面圖形切割的部份...
我還沒寫出來~
圓形切割是因為~
我在想要怎樣把圓的公式寫進程式裡去~
而且要處裡的點只要是那個圓的範圍~
for該怎寫~還在想~
倒是矩形的有想到~
可是跑出來怪怪的~
因為圖的大小竟然不會隨著TrackBar的值改變= =
到是中心點的位子會隨著TrackBar的值作更變....
整個就是詭異到極點~"~

沒有留言:

張貼留言