ImgResize.NETを作成中

PowerShot S2 ISの画像データがでかすぎでザウルスで処理できないので、imgresizの代替を探していたのですが、簡単一気に縮小ができてかつ、Exifも残せるアプリはなかなか見つかりません。
ちゅーことで、自作することにしました。
ドラッグ & ドロップで一気に縮小します。


しかし、とりあえずまっとうにC#で作成したものの…遅い!遅すぎる!
メモリ512で1Ghzのマシンが、ザウルスよりも処理が遅いってのはもの凄く納得がいきません。
原因はどうやらC#の画像クラスであるImageで、ピクセルデータとの入出力インタフェースであるGetPixel/SetPixel関連がずば抜けて遅いようです。
とにかく、640*480に縮小するのに30秒以上かかるので話になりません。


S2 ISの連射機能のおかげで、1回の撮影で大量の画像データができますので、(自宅の環境に特化しまくっているため、とりあえず公開する気は全くないとはいえ)遅くても待つというのはかなり辛い状況となっています。また、デフォルトの縮小方法では、いまいち画質も悪いので面積平均法は捨てられません。どちらにせよ、マネージドなコードでは全くお話にならない模様なので、unsafeになってしまうけれどもWindowsリソースに直接アクセスするようにしなければ効果は無い模様です。
bmpで保存しておいてバイナリで読み込んで配列操作…というのも作ったけどそれでもまだ遅いので、どうにもいまいちなんですね。


うーん…どうしようかな…?