ImageBitmap
-
Cmn
interface ImageBitmap
Graphics object that represents a 2 dimensional array of pixel information represented as ARGB values
Summary
Nested types |
|---|
object ImageBitmap.CompanionProvide an empty companion object to hang platform-specific companion extensions onto. |
Public functions |
||
|---|---|---|
Unit |
Builds caches associated with the ImageBitmap that are used for drawing it. |
Cmn
|
Unit |
readPixels(Copies the pixel data within the ImageBitmap into the given array. |
Cmn
|
Public properties |
||
|---|---|---|
ColorSpace |
ColorSpace the Image renders in |
Cmn
|
ImageBitmapConfig |
Returns the current configuration of this Image, either: |
Cmn
|
Boolean |
Determines whether or not the ImageBitmap contains an alpha channel |
Cmn
|
Int |
The number of image pixels along the ImageBitmap's vertical axis. |
Cmn
|
Int |
The number of image pixels along the ImageBitmap's horizontal axis. |
Cmn
|
Extension functions |
||
|---|---|---|
Bitmap |
android
|
|
PixelMap |
ImageBitmap.toPixelMap(Convenience method to extract pixel information from the given ImageBitmap into a |
Cmn
|
Extension properties |
||
|---|---|---|
RemoteImageBitmap |
Extension property to convert a |
android
|
Public functions
prepareToDraw
fun prepareToDraw(): Unit
Builds caches associated with the ImageBitmap that are used for drawing it. This method can be used as a signal to upload textures to the GPU to eventually be rendered
readPixels
fun readPixels(
buffer: IntArray,
startX: Int = 0,
startY: Int = 0,
width: Int = this.width,
height: Int = this.height,
bufferOffset: Int = 0,
stride: Int = width
): Unit
Copies the pixel data within the ImageBitmap into the given array. Each value is represented as ARGB values packed into an Int. The stride parameter allows the caller to allow for gaps in the returned pixels array between rows. For normal packed, results, the stride value is equivalent to the width of the ImageBitmap. The returned colors are non-premultiplied ARGB values in the ColorSpaces.Srgb color space.
Note this method can block so it is recommended to not invoke this method in performance critical code paths
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.PixelMap 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) } }
| Parameters | |
|---|---|
buffer: IntArray |
The array to store the |
startX: Int = 0 |
The x-coordinate of the first pixel to read from the |
startY: Int = 0 |
The y-coordinate of the first pixel to read from the |
width: Int = this.width |
The number of pixels to read from each row |
height: Int = this.height |
The number of rows to read |
bufferOffset: Int = 0 |
The first index to write into the buffer array, this defaults to 0 |
stride: Int = width |
The number of entries in |
Public properties
Extension functions
ImageBitmap.asAndroidBitmap
fun ImageBitmap.asAndroidBitmap(): Bitmap
| Throws | |
|---|---|
UnsupportedOperationException |
if this |
ImageBitmap.toPixelMap
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
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.PixelMap import androidx.compose.ui.graphics.toPixelMap 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) } }
| Parameters | |
|---|---|
startX: Int = 0 |
The x-coordinate of the first pixel to read from the |
startY: Int = 0 |
The y-coordinate of the first pixel to read from the |
width: Int = this.width |
The number of pixels to read from each row |
height: Int = this.height |
The number of rows to read |
buffer: IntArray = IntArray(width * height) |
The array to store the |
bufferOffset: Int = 0 |
The first index to write into the buffer array, this defaults to 0 |
stride: Int = width |
The number of entries in |
| See also | |
|---|---|
readPixels |
Extension properties
ImageBitmap.rb
val ImageBitmap.rb: RemoteImageBitmap
Extension property to convert a ImageBitmap to a RemoteImageBitmap.