2016-07-10 13 views
1

私はAndroidでpngエンコーディングの画質を制御することはできますか?

bitmap.compress(Bitmap.CompressFormat.PNG, quality, outStream); 

でPNGにビットマップを変換し、ファイルを共有しようとしています。 documentationによるとqualityパラメータはPNG形式では無視されます。

可逆フォーマットでもビットマップをPNGに変換している間に画像の品質を制御できますか?

共有したい画像に透明性がないことを考慮して、JPEGを使用する必要があります。一方、画像の一部(約30〜40%)が同じ色で塗りつぶされています。これはPNGで、私が知る限りはうまくいきます。

+0

PNGには品質係数の概念があります。 – CommonsWare

答えて

2

PNGには品質係数がありません。 PNG圧縮は無損失である(すなわち、品質は常に100%である)。

しかし、アンチエイリアスなどを使用しないで、色数や透明度を減らしたり、画像データをより圧縮したりするなどして、コンプレッサに渡す前に画質を低下させることができます。

また、pngquant、pngcrush、imagemagick/graphicsmagick、zopflipng、またはoptipngなどの別のオプティマイザでPNGファイルを再圧縮することもできます。

imagemagick/graphicsmagickはPNG圧縮の「品質」値を持っていますが、JPEGファイルとは意味が異なります(PNG「品質」が高いほど一般的に圧縮は良くなりますが、画像の外観は変わりません)。

関連する問題