平均画素法

画像縮小アルゴリズムの平均画素法(面積平均法?)の実装を、marumoさんのDiaryを参考に作ってみた。

http://www.marumo.ne.jp/db2000_c.htm#20
http://www.geocities.jp/beruponu/glAveragingReducer.h.txt

ララ…、比率自由版(AveragingReduce_Any)のコードが長過ぎる…でも関数化しようにもパラメータが増えて嫌になる。。禁断のマクロは、headerファイルでは使いたくないなぁ…。

比率自由版以外のケースでは、(target * n - 1 = source)の比率用の処理の実装が済んでいない。縦と横の比率を別々にするのも対応してない。端数処理を書いていない。比率が静的な場合用の実装は途中で諦めて放置中。見えないバグが所々に埋まってそう。。と、かなりヌルポ。

速度は、SSE2整数を使えばかなり上がるんだろうなぁ。でもVCは自動的には利用してくれないっぽい。浮動小数点数の場合はSSEを使ってくれるのに…。というか別に元画像のPixel全部舐めなくても、縮小処理はバイリニアで十分な時も多い気がする…。

もう投げ出してバイリニアのStretchBitBlockTransfer実装しよう。え?GDIのStretchBltで十分?