管理人が公開しているアンドロイド用のアプリ「写真を綺麗に縮小」の紹介です。
写真のサイズを縮小して、ネット公開用にしたり、SNS用にしたりするアプリです。
作ってからかなり経っているので、人気もなくなってきたました。
こういったアプリの需要がなくなってきたかというと、そうでもないようなので、もう一度、輝いてもらう為にアピールしたいと思います。
アプリを公開してから、スマホの写真解像度がどんどん向上していき、公開当時の時代ですと一眼レフでしか扱えなかった画素が普通に扱えるスマホが山ほど出てきました。
当然ながら写真の容量も爆発的に増えてしまい、縮小する需要もまだまだあるということでしょう。
SNSアプリ等では、縮小機能もあるので、それを使ってもらうのも全く問題無いのですが、なぜ、専用アプリが必要なのかを説明したいと思います。
早速ですが、当アプリと一番人気の縮小アプリとの比較をしてみましょう。
引用:フリー写真素材ぱくたそ
先が、 一番人気の縮小アプリで、後が当アプリの縮小結果です。
一見して差がわかりませんが、以下のヒストグラムを見ると、一番人気の縮小アプリの明度が落ちていることがわかります。
おそらく、畳み込む時に切り捨て処理をしてしまっているのではないかと想像します。
髪の流れをアップにするとより差がはっきりします。
左は、明暗が失われており髪の流れが薄く表現されていますが、右は、明瞭かつ自然に表現されています。
画像の縮小処理は、ある一定の領域の画素を少ない画素で表現する処理です。
なので、ある特定の位置の画素が最も最適な色として表現出来ていなければ全体として綺麗な画像として縮小されません。
簡単な方法ですと、元の画素周辺の色の平均で表現すれば良いのですが、 すると綺麗なグラデーションが失われてざらつきのある画像になってしまいます。
多くの縮小処理がこの方法を採用していると思われます。
高度な方法して、双三次補間(バイキュービック)といった目的画素の周辺距離によって計算する方法もあり、少なからず扱っているアプリも存在します。
この方法ですと、多くの場合、綺麗な結果が得られますが、欠点として少々ぼやけたような結果となります。
さらに良いアプリですと、この結果にシャプネス処理を入れてうまく補間しているアプリも少数派でいるのではないかと思われます。
当アプリの処理は、上記の方法とは異なる方法を採用しています。
周辺画素を用いるのは、同じですが、その補間方法にランチョス3関数を使用しています。
この関数は、ローパスフィルタと呼ばれており、となりあった画素の色表現が自然な勾配になり人が見る場合に最適な表現となります。
ただし、万能ではなく幾何学模様等の非自然な画像には向いていません。
この処理は、面倒で重くメモリ使用量も大きなってしまうので、採用するアプリはほとんどありません。
当時の管理人には、やる気と根性があったので、なんとか形に出来ました。
特にアンドロイドアプリの場合、画像の読み込みで自動縮小してロード出来てしまうので、こんな面倒くさい処理を書く人は、まれだったと思います。
でも、幾多のアプリで縮小しても汚い画像しか出力されなかったので頑張りました。
まっ色々と御託を並べましたが、要するに頑張ったアプリなんで、みなさん使ってみてよということです。