#wp7dev_jp
さて、写真にぼかしをかけてみましたが、広範囲のぼかしをかけると、計算量が増え処理速度の問題が出ます。Blur=2くらいでは1,2秒ですが、 Blur = 6では約5秒、そして10では訳12秒かかります。ではどうしたらいいでしょう?
正直に言えば、隣り合った点はそれほど大きな色の変化をしていません。ですから平均をとるときに1,2個間引いたとしてもそれほど大きな変化は出ないでしょう。
ではどのくらい間引くとどのくらい画像に影響するのか?
下記は Blur 10の設定で、間引きなし、2ドット毎にサンプリング、3ドットごとにサンプリング、5ドットごとにサンプリング、としたものです。
見ると、さすがに5ドットおきでのサンプリングはかなり画像が荒れてきます。
ちなみに、それぞれの処理時間は 12秒、3.5秒、2秒弱、1秒というくらい。これを見ると3ドット毎にサンプリングするとよさそうです。
実装(差分)
ということで処理の変更はシンプルです。for句の最後が、y++ではなく y+=3です。
: int G = 0; int B = 0; for (int y = -1 * blur; y <= blur; y+=3) { for (int x = -1 * blur; x <= blur; x+=3) { int tx = ox + x; int ty = oy + y; :
:
int G = 0;
int B = 0;
for (int y = -1 * blur; y <= blur; y+=3)
{
for (int x = -1 * blur; x <= blur; x+=3)
int tx = ox + x;
int ty = oy + y;
こうして、画像の低下を最低限に抑えながら、返還のパフォーマンスを稼ぐことができました。ちょっとしたアイディアですが、塵積で、かなりの時間短縮になります。