ColorMatrix
を使用することで色合いが変更できる。
fun Bitmap.filter(): Bitmap {
//例としてグレースケール変更している
val matrix = ColorMatrix(
floatArrayOf(
0.33f, 0.33f, 0.33f, 0f, 0f,
0.33f, 0.33f, 0.33f, 0f, 0f,
0.33f, 0.33f, 0.33f, 0f, 0f,
0f, 0f, 0f, 1f, 0f
)
)
val bitmap = Bitmap.createBitmap(width, height, config)
val paint = Paint().apply { colorFilter = ColorMatrixColorFilter(matrix) }
Canvas(bitmap).drawBitmap(this, 0f, 0f, paint)
return bitmap
}
以前に書いた記事でも変更できるが、色合いを変更するだけならこちらの方が簡単。
参考サイト