Palette

class Palette


A helper class to extract prominent colors from an image.

A number of colors with different profiles are extracted from the image:

  • Vibrant
  • Vibrant Dark
  • Vibrant Light
  • Muted
  • Muted Dark
  • Muted Light
These can be retrieved from the appropriate getter method.

Instances are created with a Builder which supports several options to tweak the generated Palette. See that class' documentation for more information.

Generation should always be completed on a background thread, ideally the one in which you load your image on. Builder supports both synchronous and asynchronous generation:

// Synchronous
Palette p = Palette.from(bitmap).generate();

// Asynchronous
Palette.from(bitmap).generate(new PaletteAsyncListener() {
    public void onGenerated(Palette p) {
        // Use generated instance
    }
});

Summary

Nested types

Builder class for generating Palette instances.

interface Palette.Filter

A Filter provides a mechanism for exercising fine-grained control over which colors are valid within a resulting Palette.

Listener to be used with generateAsync or generateAsync

Represents a color swatch generated from an image's palette.

Public functions

java-static Palette.Builder
from(bitmap: Bitmap)

Start generating a Palette with the returned Builder instance.

java-static Palette

Generate a Palette from the pre-generated list of Palette.Swatch swatches.

java-static Palette!
generate(bitmap: Bitmap!)

This function is deprecated.

Use Builder to generate the Palette.

java-static Palette!
generate(bitmap: Bitmap!, numColors: Int)

This function is deprecated.

Use Builder to generate the Palette.

java-static AsyncTask<Bitmap!, Void!, Palette!>!

This function is deprecated.

Use Builder to generate the Palette.

java-static AsyncTask<Bitmap!, Void!, Palette!>!
generateAsync(
    bitmap: Bitmap!,
    numColors: Int,
    listener: Palette.PaletteAsyncListener!
)

This function is deprecated.

Use Builder to generate the Palette.

@ColorInt Int
getColorForTarget(target: Target, defaultColor: @ColorInt Int)

Returns the selected color for the given target from the palette as an RGB packed int.

@ColorInt Int
getDarkMutedColor(defaultColor: @ColorInt Int)

Returns a muted and dark color from the palette as an RGB packed int.

Palette.Swatch?

Returns a muted and dark swatch from the palette.

@ColorInt Int

Returns a dark and vibrant color from the palette as an RGB packed int.

Palette.Swatch?

Returns a dark and vibrant swatch from the palette.

@ColorInt Int
getDominantColor(defaultColor: @ColorInt Int)

Returns the color of the dominant swatch from the palette, as an RGB packed int.

Palette.Swatch?

Returns the dominant swatch from the palette.

@ColorInt Int

Returns a muted and light color from the palette as an RGB packed int.

Palette.Swatch?

Returns a muted and light swatch from the palette.

@ColorInt Int

Returns a light and vibrant color from the palette as an RGB packed int.

Palette.Swatch?

Returns a light and vibrant swatch from the palette.

@ColorInt Int
getMutedColor(defaultColor: @ColorInt Int)

Returns a muted color from the palette as an RGB packed int.

Palette.Swatch?

Returns a muted swatch from the palette.

Palette.Swatch?

Returns the selected swatch for the given target from the palette, or null if one could not be found.

(Mutable)List<Palette.Swatch!>

Returns all of the swatches which make up the palette.

(Mutable)List<Target!>

Returns the targets used to generate this palette.

@ColorInt Int
getVibrantColor(defaultColor: @ColorInt Int)

Returns the most vibrant color in the palette as an RGB packed int.

Palette.Swatch?

Returns the most vibrant swatch in the palette.

Extension functions

inline operator Palette.Swatch?
Palette.get(target: Target)

Returns the selected swatch for the given target from the palette, or null if one could not be found.

Public functions

from

Added in 1.0.0
java-static fun from(bitmap: Bitmap): Palette.Builder

Start generating a Palette with the returned Builder instance.

from

Added in 1.0.0
java-static fun from(swatches: (Mutable)List<Palette.Swatch!>): Palette

Generate a Palette from the pre-generated list of Palette.Swatch swatches. This is useful for testing, or if you want to resurrect a Palette instance from a list of swatches. Will return null if the swatches is null.

generate

Added in 1.0.0
Deprecated in 1.0.0
java-static fun generate(bitmap: Bitmap!): Palette!

generate

Added in 1.0.0
Deprecated in 1.0.0
java-static fun generate(bitmap: Bitmap!, numColors: Int): Palette!

generateAsync

Added in 1.0.0
Deprecated in 1.0.0
java-static fun generateAsync(bitmap: Bitmap!, listener: Palette.PaletteAsyncListener!): AsyncTask<Bitmap!, Void!, Palette!>!

generateAsync

Added in 1.0.0
Deprecated in 1.0.0
java-static fun generateAsync(
    bitmap: Bitmap!,
    numColors: Int,
    listener: Palette.PaletteAsyncListener!
): AsyncTask<Bitmap!, Void!, Palette!>!

getColorForTarget

Added in 1.0.0
fun getColorForTarget(target: Target, defaultColor: @ColorInt Int): @ColorInt Int

Returns the selected color for the given target from the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

getDarkMutedColor

Added in 1.0.0
fun getDarkMutedColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns a muted and dark color from the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

getDarkMutedSwatch

Added in 1.0.0
fun getDarkMutedSwatch(): Palette.Swatch?

Returns a muted and dark swatch from the palette. Might be null.

See also
DARK_MUTED

getDarkVibrantColor

Added in 1.0.0
fun getDarkVibrantColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns a dark and vibrant color from the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

getDarkVibrantSwatch

Added in 1.0.0
fun getDarkVibrantSwatch(): Palette.Swatch?

Returns a dark and vibrant swatch from the palette. Might be null.

See also
DARK_VIBRANT

getDominantColor

Added in 1.0.0
fun getDominantColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns the color of the dominant swatch from the palette, as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

getDominantSwatch

Added in 1.0.0
fun getDominantSwatch(): Palette.Swatch?

Returns the dominant swatch from the palette.

The dominant swatch is defined as the swatch with the greatest population (frequency) within the palette.

getLightMutedColor

Added in 1.0.0
fun getLightMutedColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns a muted and light color from the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

getLightMutedSwatch

Added in 1.0.0
fun getLightMutedSwatch(): Palette.Swatch?

Returns a muted and light swatch from the palette. Might be null.

See also
LIGHT_MUTED

getLightVibrantColor

Added in 1.0.0
fun getLightVibrantColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns a light and vibrant color from the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

getLightVibrantSwatch

Added in 1.0.0
fun getLightVibrantSwatch(): Palette.Swatch?

Returns a light and vibrant swatch from the palette. Might be null.

See also
LIGHT_VIBRANT

getMutedColor

Added in 1.0.0
fun getMutedColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns a muted color from the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

See also
getMutedSwatch

getMutedSwatch

Added in 1.0.0
fun getMutedSwatch(): Palette.Swatch?

Returns a muted swatch from the palette. Might be null.

See also
MUTED

getSwatchForTarget

Added in 1.0.0
fun getSwatchForTarget(target: Target): Palette.Swatch?

Returns the selected swatch for the given target from the palette, or null if one could not be found.

getSwatches

Added in 1.0.0
fun getSwatches(): (Mutable)List<Palette.Swatch!>

Returns all of the swatches which make up the palette.

getTargets

Added in 1.0.0
fun getTargets(): (Mutable)List<Target!>

Returns the targets used to generate this palette.

getVibrantColor

Added in 1.0.0
fun getVibrantColor(defaultColor: @ColorInt Int): @ColorInt Int

Returns the most vibrant color in the palette as an RGB packed int.

Parameters
defaultColor: @ColorInt Int

value to return if the swatch isn't available

See also
getVibrantSwatch

getVibrantSwatch

Added in 1.0.0
fun getVibrantSwatch(): Palette.Swatch?

Returns the most vibrant swatch in the palette. Might be null.

See also
VIBRANT

Extension functions

inline operator fun Palette.get(target: Target): Palette.Swatch?

Returns the selected swatch for the given target from the palette, or null if one could not be found.