グラデーションに縞が入って画質が劣化している

短いTipsですが、個人的にどはまりしてしまったので、記事として残します。

 

pngなどで、グラデーションの画像を利用する際にグラデーション部分に縞が入ってしまって、見苦しい状態になってしまいました。(webだとわからない??)

このサイズだとあんまり気にならないのですが、アンドロイドの端末だと、線がすごいきになります。(なった人は共感いただけるかと思います。)

stack overflowとかの質問で、ditherと言うものを使えばいい。と言うように書いてあったのですが、フォーマットの設定なども変更する必要があるようで、

getWindow().setFormat(PixelFormat.RGBA_8888);
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_DITHER, WindowManager.LayoutParams.FLAG_DITHER);
 BitmapFactory.Options options = new BitmapFactory.Options();
 options.inPreferredConfig = Bitmap.Config.ARGB_8888;
 options.inDither = true;

上記のような設定をしたりして、BitmapFactoryを利用したのですが、うまくいきませんでした。

スタックオーバーフローのアンサーで問題なくグラデーションがキレイになれば、いいのですがそうならなかった場合の対策↓

 

■photoshopなどでノイズのfilterを1%かけます。

 

グラデーションがキレイに出ました。ノイズも気になりません。上記のditherの設定も必要なしです。

 

ノイズの設定をできるプロパティなどもあるようなのですが、photoshopでやった方が任意の量でキレイでCPUにも負担をかけないので、オススメです。stack overflowの方法でditherとか使うよりこっちの方がよいかもしれないとも思っています。

以上です。

 

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑