Deklarasi android.graphics.Bitmap.createScaledBitmap
adalah
public static Bitmap createScaledBitmap
(Bitmap src, int dstWidth, int dstHeight, boolean filter)
Namun, dokumentasi tidak menjelaskan parameter apa pun. Semuanya cukup jelas kecuali untuk boolean filter
. Adakah yang tahu apa fungsinya?
Untuk memperluas jawaban Karan: Sebagai aturan umum Anda tidak akan melihat perbedaan jika Anda skala gambar Anda ke bawah , tetapi Anda akan jika Anda scaling up .
Passing
filter = false
akan menghasilkan gambar yang pucat dan pucat.Lewat
filter = true
akan memberi Anda tepi yang lebih halus.Namun, seperti yang ditunjukkan EIYeante dalam komentar, Anda mungkin masih melihat perbedaan. Ini adalah contoh gambar mereka.
sumber
bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), intent.getData()); resizedBitmap = Bitmap.createScaledBitmap(bm, 150, 150, true); resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 95, out);
Saya hanya mengubah parameter filter.Filter akan menetapkan FILTER_BITMAP_FLAG untuk lukisan yang memengaruhi pengambilan sampel bitmap ketika ditransformasikan berdasarkan nilai yang Anda berikan.
sumber
Agak terlambat ke pesta, tapi saya pikir beberapa contoh gambar bisa mengklarifikasi masalah ini.
API Android tidak menentukan jenis filter apa yang akan diterapkan, jadi saya kira pertanyaannya adalah: apakah Anda ingin agar piksel Anda tetap seperti semula (seperti yang Anda inginkan dalam seni 8-bit) atau apakah boleh menerapkan transformasi ke membuat gambar lebih enak (seperti yang Anda inginkan dalam foto).
Ada pertanyaan yang lebih umum tentang apakah dan bagaimana memfilter pada pengguna super .
Kata Jeff Atwood:
sumber