HTML Canvasで平均画素法

今日はHTML Canvasで平均画素法を書いてみた。

平均画素法は画像縮小用のアルゴリズムです。例えば元画像と縮小後の画像のサイズの比率が3:2だとすると、2倍に拡大して、1/3に縮小する、という処理を通して縮小します。仕上がりはかなり高品質で、画素を計算するのに浮動小数点演算が不要であるためCPUに優しいアルゴリズムです。

縮小の比率が100:99のような大きな値になったとき、単純に処理を行うと計算量がかなり増えてしまうのが欠点です。

考え方が単純なので楽勝、と考えていたら思ったより面倒で、やっつけコードになってしまいました。また縦横同時縮小なんて器用な真似はできないので縦と横を別々に縮小しています。むかつくので暇なときにブラッシュアップするかも。