這次作業是加入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 就會改變圖片的樣式
在按下 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,能夠在任一點按下後調整曲線
尤其是在做 Curve,能夠在任一點按下後調整曲線
真的蠻新鮮的!
沒有留言:
張貼留言