2014年11月7日 星期五

01361073 游宇程 HW03

這次作業是加入LEVEL 和 CURVE



利用 Edit 元件輸入數值後來改變左圖的樣式
更改後樣式如下圖


Edit 元件部分程式碼如下:

iInputMin = StrToIntDef(Edit1->Text,0);

for (i=0;i<256;i++)
{
if ( i <= iInputMin)
iLevelsTable[i] = iOutputMin;
else if ( i >= iInputMax )
iLevelsTable[i] = iOutputMax;
else
{
iInputInterval = iInputMax - iInputMin;
iOutputInterval = iOutputMax - iOutputMin;
iLevelsTable[i] =  iOutputMin + (int)((float) iOutputInterval * (i - iInputMin) / iInputInterval + 0.5) ;
}


而 Curve 是用到 MouseDown 個事件

將屬標點到 Image 上面任一點
在按下 APPLY button 就會改變圖片的樣式
製作 Curve 的 Image 大小要256*256
MouseDown 部分程式碼如下:
iS = X;
iT = 255 - Y;
fCoeA = (float)( iT - iS ) / ( iS*iS - 255 * iS );
fCoeB = (float)(1 - fCoeA * 255 ) ;

這次的作業蠻有趣的
尤其是在做 Curve,能夠在任一點按下後調整曲線
真的蠻新鮮的! 


沒有留言:

張貼留言