@Alvaro Menezes responds as a function of Kotlin's extension
fun Bitmap.trim(@ColorInt color: Int = Color.TRANSPARENT): Bitmap { var top = 0 var left = 0 var botton = height var right = width var colored = IntArray(width, , { color }) var buffer = IntArray(width) for (y in 0 until height) { getPixels(buffer, 0, width, 0, y, width, 1) if (!Arrays.equals(colored, buffer)) { top = y break } } for (y in height - 1 downTo top + 1) { getPixels(buffer, 0, width, 0, y, width, 1) if (!Arrays.equals(colored, buffer)) { botton = y break } } val bufferSize = botton - top + 1 colored = IntArray(bufferSize, { color }) buffer = IntArray(bufferSize) for (x in 0 until width) { getPixels(buffer, 0, 1, x, top + 1, 1, bufferSize) if (!Arrays.equals(colored, buffer)) { left = x break } } for (x in width - 1 downTo left + 1) { getPixels(buffer, 0, 1, x, top + 1, 1, bufferSize) if (!Arrays.equals(colored, buffer)) { right = x break } } return Bitmap.createBitmap(this, left, top, right - left, botton - top) }
crgarridos
source share