#android #image #kotlin #android-imageview #android-bitmap
Вопрос:
Я хочу инвертировать цвета растрового изображения, и у меня есть этот код:
private fun Bitmap.invertColors(): Bitmap {
val bitmap = Bitmap.createBitmap(
width,
height,
Bitmap.Config.ARGB_8888
)
val matrixInvert = ColorMatrix().apply {
set(
floatArrayOf(
-1.0f, 0.0f, 0.0f, 0.0f, 255.0f,
0.0f, -1.0f, 0.0f, 0.0f, 255.0f,
0.0f, 0.0f, -1.0f, 0.0f, 255.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f
)
)
}
val paint = Paint()
ColorMatrixColorFilter(matrixInvert).apply {
paint.colorFilter = this
}
Canvas(bitmap).drawBitmap(this, 0f, 0f, paint)
return bitmap
}
Но после инверсии размеры изображения меняются (например, обрезка на 50%), и я не знаю, почему.
Если я передам в этой функции размеры изображения, оно будет уменьшаться, но все равно будет уменьшаться.
Пожалуйста, помогите мне. Спасибо!