Я занимаюсь разработкой приложений для Android и чатом. Я хочу сделать функцию, где пользователь выбирает изображение из галереи и отправляет его на сервер. Но прежде чем отправить его на сервер, я хочу применить к нему некоторые действия, чтобы уменьшить размер. Поэтому я хочу изменить размер сжатия и превратить его в GrayScale. О серой шкале я нашел следующий код.
private fun getGrayscale(src: Bitmap): Bitmap {
//Custom color matrix to convert to GrayScale
val matrix = floatArrayOf(0.3f, 0.59f, 0.11f, 0f, 0f, 0.3f, 0.59f, 0.11f, 0f, 0f, 0.3f, 0.59f, 0.11f, 0f, 0f, 0f, 0f, 0f, 1f, 0f)
val dest = Bitmap.createBitmap(
src.width,
src.height,
src.config
)
val canvas = Canvas(dest)
val paint = Paint()
val filter = ColorMatrixColorFilter(matrix)
paint.colorFilter = filter
canvas.drawBitmap(src, 0.toFloat(), 0.toFloat(), paint)
return dest
}
Но когда я печатаю размер изображения, я вижу, что размер такой же, хотя цвета исчезают. Как я могу преобразовать в grayScale и уменьшить размер изображения ..?
Спасибо