Class RMColor

  • All Implemented Interfaces:
    Archivable

    public class RMColor
    extends java.lang.Object
    implements Archivable
    This class represents an RGBA color, just like Java.awt.Color. It was originally needed when running without AWT. It still has some convenience, but maybe one day should be replaced by, or just subclass, Java.awt.Color.
    • Constructor Summary

      Constructors 
      Constructor Description
      RMColor()
      Creates a plain black opaque color.
      RMColor​(double g)
      Creates a color with the given gray value (0-1).
      RMColor​(double g, double a)
      Creates a color with the given gray and alpha values (0-1).
      RMColor​(double r, double g, double b)
      Creates a color with the given red, green blue values (0-1).
      RMColor​(double r, double g, double b, double a)
      Creates a color with the given red, green, blue values (0-1).
      RMColor​(double c, double m, double y, double k, double a)
      Creates a color with the given cyan, magenta, yellow, black and alpha values (0-1).
      RMColor​(int r, int g, int b)
      Creates a color with the given red, green blue values (0-1).
      RMColor​(java.awt.Color awt)
      Creates an RMColor from the given AWT color.
      RMColor​(java.lang.String aHexString)
      Creates a new color from the given hex string.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.awt.Color awt()
      Returns an AWT version of this color.
      RMColor blend​(RMColor aColor, double aFraction)
      Returns a color darker than this color (by this given fraction).
      RMColor brighter()
      Returns a color brighter than this color (blended with white).
      static RMColor colorValue​(java.lang.Object anObj)
      Returns a color value for a given object.
      RMColor darker()
      Returns a color darker than this color (blended with black).
      boolean equals​(java.lang.Object anObj)
      Standard equals implementation.
      java.lang.Object fromXML​(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      double getAlpha()
      Returns the alpha component in the range 0-1.
      int getAlphaInt()
      Returns the alpha component in the range 0-255.
      double getBlue()
      Returns the blue component in the range 0-1.
      int getBlueInt()
      Returns the blue component in the range 0-255.
      double getGreen()
      Returns the green component in the range 0-1.
      int getGreenInt()
      Returns the green component in the range 0-255.
      static RMColor getRandom()
      Returns a random color.
      double getRed()
      Returns the red component in the range 0-1.
      int getRedInt()
      Returns the red component in the range 0-255.
      int getRGBA()
      Returns the color as an int.
      static float[] rgbToLab​(double r, double g, double b)
      Converts an RGB triplet to a CIELab triplet
      java.lang.String toHexString()
      Returns a hex string representation of this color.
      float[] toLab()
      Converts an RMColor to a CIELab triplet
      java.lang.String toString()
      Returns a string representation of this color.
      RXElement toXML​(RXArchiver anArchiver)
      XML archival.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RMColor

        public RMColor()
        Creates a plain black opaque color.
      • RMColor

        public RMColor​(double g)
        Creates a color with the given gray value (0-1).
      • RMColor

        public RMColor​(double g,
                       double a)
        Creates a color with the given gray and alpha values (0-1).
      • RMColor

        public RMColor​(double r,
                       double g,
                       double b)
        Creates a color with the given red, green blue values (0-1).
      • RMColor

        public RMColor​(int r,
                       int g,
                       int b)
        Creates a color with the given red, green blue values (0-1).
      • RMColor

        public RMColor​(double r,
                       double g,
                       double b,
                       double a)
        Creates a color with the given red, green, blue values (0-1).
      • RMColor

        public RMColor​(double c,
                       double m,
                       double y,
                       double k,
                       double a)
        Creates a color with the given cyan, magenta, yellow, black and alpha values (0-1). Bogus right now.
      • RMColor

        public RMColor​(java.awt.Color awt)
        Creates an RMColor from the given AWT color.
      • RMColor

        public RMColor​(java.lang.String aHexString)
        Creates a new color from the given hex string.
    • Method Detail

      • getRed

        public double getRed()
        Returns the red component in the range 0-1.
      • getGreen

        public double getGreen()
        Returns the green component in the range 0-1.
      • getBlue

        public double getBlue()
        Returns the blue component in the range 0-1.
      • getAlpha

        public double getAlpha()
        Returns the alpha component in the range 0-1.
      • getRedInt

        public int getRedInt()
        Returns the red component in the range 0-255.
      • getGreenInt

        public int getGreenInt()
        Returns the green component in the range 0-255.
      • getBlueInt

        public int getBlueInt()
        Returns the blue component in the range 0-255.
      • getAlphaInt

        public int getAlphaInt()
        Returns the alpha component in the range 0-255.
      • getRGBA

        public int getRGBA()
        Returns the color as an int.
      • brighter

        public RMColor brighter()
        Returns a color brighter than this color (blended with white).
      • darker

        public RMColor darker()
        Returns a color darker than this color (blended with black).
      • blend

        public RMColor blend​(RMColor aColor,
                             double aFraction)
        Returns a color darker than this color (by this given fraction).
      • equals

        public boolean equals​(java.lang.Object anObj)
        Standard equals implementation.
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Returns a string representation of this color.
        Overrides:
        toString in class java.lang.Object
      • toHexString

        public java.lang.String toHexString()
        Returns a hex string representation of this color.
      • colorValue

        @Nullable
        public static RMColor colorValue​(java.lang.Object anObj)
        Returns a color value for a given object. If we can't guess what color the object represents, returns null.
      • toLab

        public float[] toLab()
        Converts an RMColor to a CIELab triplet
      • rgbToLab

        public static float[] rgbToLab​(double r,
                                       double g,
                                       double b)
        Converts an RGB triplet to a CIELab triplet
      • getRandom

        public static RMColor getRandom()
        Returns a random color.
      • awt

        public java.awt.Color awt()
        Returns an AWT version of this color.