Lines Matching defs:ColorSpace

36  * <p>A {@link ColorSpace} is used to identify a specific organization of colors.
54 * ColorSpace sRgb = ColorSpace.get(ColorSpace.Named.SRGB);
79 * highly recommended to use the variants of the {@link #connect(ColorSpace, ColorSpace)}
81 * manually adapted to a specific white point using {@link #adapt(ColorSpace, float[])}.
91 * ColorSpace.Connector connector = ColorSpace.connect(
92 * ColorSpace.get(ColorSpace.Named.DCI_P3),
93 * ColorSpace.get(ColorSpace.Named.BT2020));
103 * ColorSpace.Connector connector = ColorSpace.connect(ColorSpace.get(ColorSpace.Named.DCI_P3));
112 * ColorSpace.Connector connector = ColorSpace.connect(
113 * ColorSpace.get(ColorSpace.Named.CIE_LAB),
114 * ColorSpace.get(ColorSpace.Named.BT709));
124 * and {@link #connect(ColorSpace, ColorSpace)}, are also guaranteed to be
136 public abstract class ColorSpace {
203 private static final ColorSpace[] sNamedColorSpaces = new ColorSpace[Named.values().length];
213 * {@link ColorSpace} can be obtained by calling {@link ColorSpace#get(Named)}:</p>
216 * ColorSpace cs = ColorSpace.get(ColorSpace.Named.DCI_P3);
224 * @see ColorSpace#get(Named)
229 * <p>{@link ColorSpace.Rgb RGB} color space sRGB standardized as IEC 61966-2.1:1999.</p>
264 * <p>{@link ColorSpace.Rgb RGB} color space sRGB standardized as IEC 61966-2.1:1999.</p>
291 * <p>{@link ColorSpace.Rgb RGB} color space scRGB-nl standardized as IEC 61966-2-2:2003.</p>
330 * <p>{@link ColorSpace.Rgb RGB} color space scRGB standardized as IEC 61966-2-2:2003.</p>
357 * <p>{@link ColorSpace.Rgb RGB} color space BT.709 standardized as Rec. ITU-R BT.709-5.</p>
392 * <p>{@link ColorSpace.Rgb RGB} color space BT.2020 standardized as Rec. ITU-R BT.2020-1.</p>
427 * <p>{@link ColorSpace.Rgb RGB} color space DCI-P3 standardized as SMPTE RP 431-2-2007.</p>
454 * <p>{@link ColorSpace.Rgb RGB} color space Display P3 based on SMPTE RP 431-2-2007 and IEC 61966-2.1:1999.</p>
489 * <p>{@link ColorSpace.Rgb RGB} color space NTSC, 1953 standard.</p>
524 * <p>{@link ColorSpace.Rgb RGB} color space SMPTE C.</p>
559 * <p>{@link ColorSpace.Rgb RGB} color space Adobe RGB (1998).</p>
586 * <p>{@link ColorSpace.Rgb RGB} color space ProPhoto RGB standardized as ROMM RGB ISO 22028-2:2013.</p>
621 * <p>{@link ColorSpace.Rgb RGB} color space ACES standardized as SMPTE ST 2065-1:2012.</p>
648 * <p>{@link ColorSpace.Rgb RGB} color space ACEScg standardized as Academy S-2014-004.</p>
700 * <p>A render intent determines how a {@link ColorSpace.Connector connector}
705 * @see ColorSpace#connect(ColorSpace, ColorSpace, RenderIntent)
777 * @see ColorSpace.Connector
778 * @see ColorSpace#connect(ColorSpace, ColorSpace)
816 * A color model is required by a {@link ColorSpace} to describe the
865 private ColorSpace(
1149 ColorSpace that = (ColorSpace) o;
1183 * @see #connect(ColorSpace)
1184 * @see #connect(ColorSpace, RenderIntent)
1185 * @see #connect(ColorSpace, ColorSpace, RenderIntent)
1188 public static Connector connect(@NonNull ColorSpace source, @NonNull ColorSpace destination) {
1207 * @see #connect(ColorSpace)
1208 * @see #connect(ColorSpace, RenderIntent)
1209 * @see #connect(ColorSpace, ColorSpace)
1213 public static Connector connect(@NonNull ColorSpace source, @NonNull ColorSpace destination,
1239 * @see #connect(ColorSpace, RenderIntent)
1240 * @see #connect(ColorSpace, ColorSpace)
1241 * @see #connect(ColorSpace, ColorSpace, RenderIntent)
1244 public static Connector connect(@NonNull ColorSpace source) {
1261 * @see #connect(ColorSpace)
1262 * @see #connect(ColorSpace, ColorSpace)
1263 * @see #connect(ColorSpace, ColorSpace, RenderIntent)
1266 public static Connector connect(@NonNull ColorSpace source, @NonNull RenderIntent intent) {
1288 * @return A {@link ColorSpace} instance with the same name, primaries,
1292 * @see #adapt(ColorSpace, float[], Adaptation)
1295 public static ColorSpace adapt(@NonNull ColorSpace colorSpace,
1321 * @see #adapt(ColorSpace, float[])
1324 public static ColorSpace adapt(@NonNull ColorSpace colorSpace,
1328 ColorSpace.Rgb rgb = (ColorSpace.Rgb) colorSpace;
1337 return new ColorSpace.Rgb(rgb, transform, whitePoint);
1343 * <p>Returns an instance of {@link ColorSpace} whose ID matches the
1351 * @return A non-null {@link ColorSpace} instance
1356 static ColorSpace get(@IntRange(from = MIN_ID, to = MAX_ID) int index) {
1365 * <p>Returns an instance of {@link ColorSpace} identified by the specified
1374 * @return A non-null {@link ColorSpace} instance
1377 public static ColorSpace get(@NonNull Named name) {
1382 * <p>Returns a {@link Named} instance of {@link ColorSpace} that matches
1392 * @return A non-null {@link ColorSpace} if a match is found, null otherwise
1395 public static ColorSpace match(
1399 for (ColorSpace colorSpace : sNamedColorSpaces) {
1401 ColorSpace.Rgb rgb = (ColorSpace.Rgb) adapt(colorSpace, ILLUMINANT_D50_XYZ);
1429 sNamedColorSpaces[Named.SRGB.ordinal()] = new ColorSpace.Rgb(
1436 sNamedColorSpaces[Named.LINEAR_SRGB.ordinal()] = new ColorSpace.Rgb(
1444 sNamedColorSpaces[Named.EXTENDED_SRGB.ordinal()] = new ColorSpace.Rgb(
1453 sNamedColorSpaces[Named.LINEAR_EXTENDED_SRGB.ordinal()] = new ColorSpace.Rgb(
1461 sNamedColorSpaces[Named.BT709.ordinal()] = new ColorSpace.Rgb(
1468 sNamedColorSpaces[Named.BT2020.ordinal()] = new ColorSpace.Rgb(
1475 sNamedColorSpaces[Named.DCI_P3.ordinal()] = new ColorSpace.Rgb(
1483 sNamedColorSpaces[Named.DISPLAY_P3.ordinal()] = new ColorSpace.Rgb(
1490 sNamedColorSpaces[Named.NTSC_1953.ordinal()] = new ColorSpace.Rgb(
1497 sNamedColorSpaces[Named.SMPTE_C.ordinal()] = new ColorSpace.Rgb(
1504 sNamedColorSpaces[Named.ADOBE_RGB.ordinal()] = new ColorSpace.Rgb(
1512 sNamedColorSpaces[Named.PRO_PHOTO_RGB.ordinal()] = new ColorSpace.Rgb(
1519 sNamedColorSpaces[Named.ACES.ordinal()] = new ColorSpace.Rgb(
1527 sNamedColorSpaces[Named.ACESCG.ordinal()] = new ColorSpace.Rgb(
1539 sNamedColorSpaces[Named.CIE_LAB.ordinal()] = new ColorSpace.Lab(
1785 private static final class Xyz extends ColorSpace {
1831 private static final class Lab extends ColorSpace {
2013 * {@link #adapt(ColorSpace, float[])} to adapt one or both color spaces to
2015 * {@link ColorSpace#connect(ColorSpace, ColorSpace)}, which also handles
2021 public static class Rgb extends ColorSpace {
2733 * {@link ColorSpace#adapt(ColorSpace, float[]) adapt} them to the
2735 * <p>It is recommended to use {@link ColorSpace#connect(ColorSpace, ColorSpace)}
2756 * {@link ColorSpace#adapt(ColorSpace, float[]) adapt} them to the
2758 * <p>It is recommended to use {@link ColorSpace#connect(ColorSpace, ColorSpace)}
2775 * must first {@link ColorSpace#adapt(ColorSpace, float[]) adapt} them
2777 * <p>It is recommended to use {@link ColorSpace#connect(ColorSpace, ColorSpace)}
2798 * must first {@link ColorSpace#adapt(ColorSpace, float[]) adapt} them
2800 * <p>It is recommended to use {@link ColorSpace#connect(ColorSpace, ColorSpace)}
2905 * <p>Refer to the documentation of {@link ColorSpace.Rgb} for
2929 * <p>Refer to the documentation of {@link ColorSpace.Rgb} for
2954 * <p>Refer to the documentation of {@link ColorSpace.Rgb} for
2978 * <p>Refer to the documentation of {@link ColorSpace.Rgb} for
3409 * We know that instances of {@link ColorSpace} always use CIE XYZ as their
3413 * using the CIE standard illuminant {@link ColorSpace#ILLUMINANT_D50 D50}
3420 * ColorSpace.Connector connector = ColorSpace.connect(
3421 * ColorSpace.get(ColorSpace.Named.SRGB),
3422 * ColorSpace.get(ColorSpace.Named.DCI_P3));
3428 * @see ColorSpace#adapt(ColorSpace, float[], Adaptation)
3429 * @see ColorSpace#adapt(ColorSpace, float[])
3430 * @see ColorSpace#connect(ColorSpace, ColorSpace, RenderIntent)
3431 * @see ColorSpace#connect(ColorSpace, ColorSpace)
3432 * @see ColorSpace#connect(ColorSpace, RenderIntent)
3433 * @see ColorSpace#connect(ColorSpace)
3437 @NonNull private final ColorSpace mSource;
3438 @NonNull private final ColorSpace mDestination;
3439 @NonNull private final ColorSpace mTransformSource;
3440 @NonNull private final ColorSpace mTransformDestination;
3451 Connector(@NonNull ColorSpace source, @NonNull ColorSpace destination,
3467 @NonNull ColorSpace source, @NonNull ColorSpace destination,
3468 @NonNull ColorSpace transformSource, @NonNull ColorSpace transformDestination,
3483 private static float[] computeTransform(@NonNull ColorSpace source,
3484 @NonNull ColorSpace destination, @NonNull RenderIntent intent) {
3493 ColorSpace.Rgb rgb = (ColorSpace.Rgb) (srcRGB ? source : destination);
3509 * @return A non-null instance of {@link ColorSpace}
3514 public ColorSpace getSource() {
3521 * @return A non-null instance of {@link ColorSpace}
3526 public ColorSpace getDestination() {
3591 @NonNull private final ColorSpace.Rgb mSource;
3592 @NonNull private final ColorSpace.Rgb mDestination;
3595 Rgb(@NonNull ColorSpace.Rgb source, @NonNull ColorSpace.Rgb destination,
3634 @NonNull ColorSpace.Rgb source,
3635 @NonNull ColorSpace.Rgb destination,
3682 * @see ColorSpace#connect(ColorSpace, ColorSpace)
3684 static Connector identity(ColorSpace source) {
3703 * Bitmap bitmap = ColorSpace.createRenderer()
3706 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3707 * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
3717 * See {@link #add(ColorSpace, float, float, float, int)} for more information.</p>
3719 * @see ColorSpace#createRenderer()
3738 private final List<Pair<ColorSpace, Integer>> mColorSpaces = new ArrayList<>(2);
3750 * Bitmap bitmap = ColorSpace.createRenderer()
3751 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3752 * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
3762 * Bitmap bitmap = ColorSpace.createRenderer()
3764 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3765 * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
3792 * Bitmap bitmap = ColorSpace.createRenderer()
3794 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3795 * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
3851 * Bitmap bitmap = ColorSpace.createRenderer()
3852 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3853 * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
3865 * Bitmap bitmap = ColorSpace.createRenderer()
3866 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3867 * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
3868 * .add(ColorSpace.get(ColorSpace.Named.ACES), 0xff097ae9)
3869 * .add(ColorSpace.get(ColorSpace.Named.EXTENDED_SRGB), 0xff000000)
3885 public Renderer add(@NonNull ColorSpace colorSpace, @ColorInt int color) {
3899 * Bitmap bitmap = ColorSpace.createRenderer()
3901 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
3902 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.0f, 0.1f, 0xffffffff)
3903 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.1f, 0.1f, 0xffffffff)
3904 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.2f, 0.1f, 0xffffffff)
3905 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.3f, 0.1f, 0xffffffff)
3906 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.4f, 0.1f, 0xffffffff)
3907 * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.5f, 0.1f, 0xffffffff)
3925 public Renderer add(@NonNull ColorSpace colorSpace, float r, float g, float b,
3932 * <p>Renders the {@link #add(ColorSpace, int) color spaces} and
3933 * {@link #add(ColorSpace, float, float, float, int) points} registered
4022 for (final Pair<ColorSpace, Integer> item : mColorSpaces) {
4023 ColorSpace colorSpace = item.first;
4067 if (rgb.equals(ColorSpace.get(Named.EXTENDED_SRGB)) ||
4068 rgb.equals(ColorSpace.get(Named.LINEAR_EXTENDED_SRGB))) {
4109 for (final Pair<ColorSpace, Integer> item : mColorSpaces) {
4110 ColorSpace colorSpace = item.first;
4246 for (final Pair<ColorSpace, Integer> item : mColorSpaces) {
4247 ColorSpace colorSpace = item.first;
4350 ColorSpace colorSpace = get(Named.SRGB);
4432 float x, float y, float z, @NonNull ColorSpace cs) {
4448 @NonNull final ColorSpace mColorSpace;
4452 Point(@NonNull ColorSpace colorSpace,