計算アルゴリズム【U】
at TECH
656:デフォルトの名無しさん
08/04/25 07:26:42
こういう時は
Y = (red * 19589+ green * 38444+ blue * 7503) / 0x10000;
か、
Y = (red * 77 + green * 150+ blue * 29)/ 256 ;
と2のベキにしたらどうかな /256 は >>8 に出来る
8bitにすれば rgbも8bitだから 16bitの入れ物で計算出来る
dstRGB[i] = (((Y * volume + red * (100 - volume)) / 100)<<16) +
(((Y * volume + green * (100 - volume)) / 100)<<8) +
((Y * volume + blue * (100 - volume)) / 100);
もvolumeを2のベキにして
Y*k + X*(1-k) = X+(Y-X)*k なので
dstRGB[i] = ((( red + (( (Y - red )*volume)>>8) )<<16) +
((( green+ (( (Y - green)*volume)>>8) )<<8) +
(( blue + (( (Y - blue )*volume)>>8) );
としたら掛け算は減らせるよ
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4774日前に更新/251 KB
担当:undef