1. ホーム
  2. アンドロイド

[解決済み】createScaledBitmapのfilterパラメータは何をするのですか?

2022-04-10 17:02:37

質問

の宣言は android.graphics.Bitmap.createScaledBitmap

public static Bitmap createScaledBitmap
  (Bitmap src, int dstWidth, int dstHeight, boolean filter)

しかし、ドキュメントにはパラメータの説明が一切ありません。 を除けば、どれもごく当たり前のことです。 boolean filter . どなたかご存知の方はいらっしゃいますか?

解決方法は?

SKIAのソースコードをざっと調べたところ、(少なくともデフォルトでは)FILTERフラグによって、素直なバイリニア補間が行われることがわかりました。 Wikipediaやお気に入りのグラフィックのリファレンスで、予想される結果を確認してみてください。 伝統的に、画像をアップサイジングするときはバイリニアまたはバイキュービック補間を行い、画像をダウンサイジングするときは面積平均を行うのが一般的です。 Android/Skiaではダウンサイジング時にフィルタリングを行わず単純なサブサンプリングを行っている印象があるので、ダウンサイジング時にもフィルタリングを行った方が良い結果が得られる可能性があります(補間で高品質にダウンサイジングする方法として、50%縮小を何度か行う方法もあります)。 参照 http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html をご覧ください)。