Analog Book Reader 1.3.1を公開した。Windowsストアでもらったコメントに対応して,高解像度の画像を開いて縮小したときに画像が汚くなるのを改善した。
前回の日記で,winrtの画像補間がどれも同じ感じと書いたが,実際はFantアルゴリズムであればある程度よい結果が得られていた。ただ,ScrollViewerの拡大縮小の結果,ぼやけた感じになっていた。そこで,画像をスクリーンの大きさに合わせたものを等倍にすることで最適化することにした。今までと少し動きが変わるので,今までと比べて劣化することがあったら報告してもらえるとありがたい。
Analog Book Readerでは,ScrollViewer内に画像を表示しているのだが,そのままだとスケーリングで画像が汚くなってしまうので,一旦画像をZoomFactor倍してからScrollViewerで表示している。デフォルトのアルゴリズムでは,拡大はある程度大丈夫だが,縮小は汚くなってしまうのが今回の問題。そこで補間アルゴリズムをFantにしたのだが,結局縮小した画像をScrollViewerがZoomFactorによってさらに縮小し,ScrollViewerの大きさに合わせて拡大しているような動作になっていた。そのため,画像がぼやけてしまう。いろいろ調べてみたがいい案はない。RenderOptionsが使えればScrollViewerで補間付きの拡大縮小ができるのだが,winrtにはない。ScrollViewerの拡大率が変わったときに画像を拡大縮小して拡大率を1.0に戻すのも検討したが,動作がおかしいので却下。そこで発想を変えて,画面の大きさを拡大率1.0にするようにした。これなら,画像を画面にぴったり合わせたときが一番綺麗に見えて,そこから拡大縮小したときも多少は見栄えがよくなる。今まで高解像度の画像があると,最大限に縮小してもあまり縮小できなかった問題も解決することができてよい案かとは思う。が,今までうまく見えていた画像がぼやけたりすることがあるのでは,と少し怖い。手元の本ではうまく見えてはいるけど・・・。