Class

PixelMap

Result of a pixel read operation.

ImageBitmapReadPixelsSample

/**
 * [ImageBitmap.readPixels] sample that shows how to create a consumer defined IntArray to store
 * pixel information and create a PixelMap for querying information within the buffer
 */
fun ImageBitmapReadPixelsSample() {
    val imageBitmap = createImageBitmap()
    val buffer = IntArray(20 * 10)
    imageBitmap.readPixels(buffer = buffer, startX = 8, startY = 9, width = 20, height = 10)
    val pixelmap = PixelMap(buffer = buffer, width = 20, height = 10, stride = 20, bufferOffset = 0)
    // create a histogram to count the number of occurrences of a color within the specified
    // subsection of the provided ImageBitmap
    val histogram = HashMap<Color, Int>()
    for (x in 0 until pixelmap.width) {
        for (y in 0 until pixelmap.height) {
            val color = pixelmap[x, y]
            val colorCount = histogram[color] ?: 0
            histogram[color] = (colorCount + 1)
        }
    }
}