---
title: "toPixelMap"
description: "Convenience method to extract pixel information from the given ImageBitmap into a [PixelMap] that
supports for querying pixel information based on

Note this method can block so it is recommended to not invoke this method in performance critical
code paths"
type: "function"
---

<div class='type'>Function</div>


<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


```kotlin
fun ImageBitmap.toPixelMap(
    startX: Int = 0,
    startY: Int = 0,
    width: Int = this.width,
    height: Int = this.height,
    buffer: IntArray = IntArray(width * height),
    bufferOffset: Int = 0,
    stride: Int = width,
): PixelMap
```


Convenience method to extract pixel information from the given ImageBitmap into a `PixelMap` that
supports for querying pixel information based on

Note this method can block so it is recommended to not invoke this method in performance critical
code paths

#### Parameters

| | |
| --- | --- |
| startX | The x-coordinate of the first pixel to read from the `ImageBitmap` |
| startY | The y-coordinate of the first pixel to read from the `ImageBitmap` |
| width | The number of pixels to read from each row |
| height | The number of rows to read |
| buffer | The array to store the `ImageBitmap`'s colors. By default this allocates an `IntArray` large enough to store all the pixel information. Consumers of this API are advised to use the smallest `IntArray` necessary to extract relevant pixel information |
| bufferOffset | The first index to write into the buffer array, this defaults to 0 |
| stride | The number of entries in `buffer` to skip between rows (must be >= `width` |




## Code Examples
### ImageBitmapToPixelMapSample
```kotlin
/**
 * Sample showing how to obtain a [PixelMap] to query pixel information from an underlying
 * [ImageBitmap]
 */
fun ImageBitmapToPixelMapSample() {
    val imageBitmap = createImageBitmap()
    // Sample a 3 by 2 subsection of the given ImageBitmap
    // starting at the coordinate (48, 49)
    val pixelmap = imageBitmap.toPixelMap(startX = 48, startY = 49, width = 3, height = 2)
    // 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)
        }
    }
}
```

