BitmapCompat

Added in 1.1.0

class BitmapCompat


Helper for accessing features in Bitmap.

Summary

Public functions

java-static Bitmap
createScaledBitmap(
    srcBm: Bitmap,
    dstW: Int,
    dstH: Int,
    srcRect: Rect?,
    scaleInLinearSpace: Boolean
)

Return a scaled bitmap.

java-static Int
@ReplaceWith(expression = "bitmap.getAllocationByteCount()")
getAllocationByteCount(bitmap: Bitmap)

This function is deprecated.

Call getAllocationByteCount directly.

java-static Boolean
@ReplaceWith(expression = "bitmap.hasMipMap()")
hasMipMap(bitmap: Bitmap)

This function is deprecated.

Call hasMipMap directly.

java-static Unit
@ReplaceWith(expression = "bitmap.setHasMipMap(hasMipMap)")
setHasMipMap(bitmap: Bitmap, hasMipMap: Boolean)

This function is deprecated.

Call setHasMipMap directly.

Public functions

createScaledBitmap

Added in 1.8.0
java-static fun createScaledBitmap(
    srcBm: Bitmap,
    dstW: Int,
    dstH: Int,
    srcRect: Rect?,
    scaleInLinearSpace: Boolean
): Bitmap

Return a scaled bitmap.

This algorithm is intended for downscaling by large ratios when high quality is desired. It is similar to the creation of mipmaps, but stops at the desired size. Visually, the result is smoother and softer than createScaledBitmap

The returned bitmap will always be a mutable copy with a config matching the input except in the following scenarios:

  1. The source bitmap is returned and the source bitmap is immutable.
  2. The source bitmap is a HARDWARE bitmap. For this input, a mutable non-HARDWARE Bitmap is returned. On API 31 and up, the internal format of the HardwareBuffer is read to determine the underlying format, and the returned Bitmap will use a Config to match. Pre-31, the returned Bitmap will be ARGB_8888.
Parameters
srcBm: Bitmap

A source bitmap. It will not be altered.

dstW: Int

The output width

dstH: Int

The output height

srcRect: Rect?

Uses a region of the input bitmap as the source.

scaleInLinearSpace: Boolean

When true, uses LINEAR_EXTENDED_SRGB as a color space when scaling. Otherwise, uses the color space of the input bitmap. (On API level 26 and earlier, this parameter has no effect).

Returns
Bitmap

A new bitmap in the requested size.

getAllocationByteCount

Added in 1.1.0
Deprecated in 1.15.0
@ReplaceWith(expression = "bitmap.getAllocationByteCount()")
java-static fun getAllocationByteCount(bitmap: Bitmap): Int

Returns the size of the allocated memory used to store this bitmap's pixels.

This value will not change over the lifetime of a Bitmap.

hasMipMap

Added in 1.1.0
Deprecated in 1.15.0
@ReplaceWith(expression = "bitmap.hasMipMap()")
java-static fun hasMipMap(bitmap: Bitmap): Boolean

Indicates whether the renderer responsible for drawing this bitmap should attempt to use mipmaps when this bitmap is drawn scaled down.

If you know that you are going to draw this bitmap at less than 50% of its original size, you may be able to obtain a higher quality

This property is only a suggestion that can be ignored by the renderer. It is not guaranteed to have any effect.

Returns
Boolean

true if the renderer should attempt to use mipmaps, false otherwise

See also
hasMipMap

setHasMipMap

Added in 1.1.0
Deprecated in 1.15.0
@ReplaceWith(expression = "bitmap.setHasMipMap(hasMipMap)")
java-static fun setHasMipMap(bitmap: Bitmap, hasMipMap: Boolean): Unit

Set a hint for the renderer responsible for drawing this bitmap indicating that it should attempt to use mipmaps when this bitmap is drawn scaled down.

If you know that you are going to draw this bitmap at less than 50% of its original size, you may be able to obtain a higher quality by turning this property on.

Note that if the renderer respects this hint it might have to allocate extra memory to hold the mipmap levels for this bitmap.

This property is only a suggestion that can be ignored by the renderer. It is not guaranteed to have any effect.

Parameters
bitmap: Bitmap

bitmap for which to set the state.

hasMipMap: Boolean

indicates whether the renderer should attempt to use mipmaps

See also
setHasMipMap