При инвертировании цветов изменения размеров растрового изображения (обрезка изображений) на Android

#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%), и я не знаю, почему.
Если я передам в этой функции размеры изображения, оно будет уменьшаться, но все равно будет уменьшаться.

Пожалуйста, помогите мне. Спасибо!