Package org.sunflow.image

## Class ColorEncoder

- java.lang.Object
- - org.sunflow.image.ColorEncoder

-     public final class ColorEncoder
      extends java.lang.Object

  This class contains many static helper methods that may be helpful for encoding colors into files.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ColorEncoder()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static int[]` | `encodeRGBE​(Color[] color)` | Encode the specified colors using Ward's RGBE technique.
    `static byte[]` | `quantizeRGB8​(Color[] color)` | Quantize the specified colors to 8-bit RGB format.
    `static byte[]` | `quantizeRGBA8​(Color[] color, float[] alpha)` | Quantize the specified colors to 8-bit RGBA format.
    `static Color[]` | `unlinearize​(Color[] color)` | Moves the colors in the specified array to non-linear space.
    `static Color[]` | `unpremult​(Color[] color, float[] alpha)` | Undoes the premultiplication of the specified color array.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ColorEncoder

          public ColorEncoder()

  - ### Method Detail

    - #### unpremult

          public static final Color[] unpremult​(Color[] color,
                                                float[] alpha)

      Undoes the premultiplication of the specified color array. The original colors are not modified.
      Parameters:
        `color` - an array of premultiplied colors
        `alpha` - alpha values corresponding to the colors
      Returns:
        an array of unpremultiplied colors

    - #### unlinearize

          public static final Color[] unlinearize​(Color[] color)

      Moves the colors in the specified array to non-linear space. The original colors are not modified.
      Parameters:
        `color` - an array of colors in linear space
      Returns:
        a new array of the same colors in non-linear space

    - #### quantizeRGB8

          public static final byte[] quantizeRGB8​(Color[] color)

      Quantize the specified colors to 8-bit RGB format. The returned array contains 3 bytes for each color in the original array.
      Parameters:
        `color` - array of colors to quantize
      Returns:
        array of quantized RGB values

    - #### quantizeRGBA8

          public static final byte[] quantizeRGBA8​(Color[] color,
                                                   float[] alpha)

      Quantize the specified colors to 8-bit RGBA format. The returned array contains 4 bytes for each color in the original array.
      Parameters:
        `color` - array of colors to quantize
        `alpha` - array of alpha values (same length as color)
      Returns:
        array of quantized RGBA values

    - #### encodeRGBE

          public static final int[] encodeRGBE​(Color[] color)

      Encode the specified colors using Ward's RGBE technique. The returned array contains one int for each color in the original array.
      Parameters:
        `color` - array of colors to encode
      Returns:
        array of encoded colors