final case class Color(red: Float = 0.0f, green: Float = 0.0f, blue: Float = 0.0f, alpha: Option[Float] = _root_.scala.None, unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[Color] with Product with Serializable

Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of "java.awt.Color" in Java; it can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" method in iOS; and, with just a little work, it can be easily formatted into a CSS "rgba()" string in JavaScript, as well.

Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space.

Example (Java):

import com.google.type.Color;

// ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0;

return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); }

public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ...

Example (iOS / Obj-C):

// ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; }

static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ...

Example (JavaScript):

// ...

var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255);

if (!('alpha' in rgb_color)) { return rgbToCssColor_(red, green, blue); }

var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(); };

var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(); };

// ...

red

The amount of red in the color as a value in the interval [0, 1].

green

The amount of green in the color as a value in the interval [0, 1].

blue

The amount of blue in the color as a value in the interval [0, 1].

alpha

The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (this color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).

Annotations
@SerialVersionUID()
Linear Supertypes
Product, Equals, Updatable[Color], GeneratedMessage, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Color
  2. Product
  3. Equals
  4. Updatable
  5. GeneratedMessage
  6. Serializable
  7. Serializable
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Color(red: Float = 0.0f, green: Float = 0.0f, blue: Float = 0.0f, alpha: Option[Float] = _root_.scala.None, unknownFields: UnknownFieldSet = ...)

    red

    The amount of red in the color as a value in the interval [0, 1].

    green

    The amount of green in the color as a value in the interval [0, 1].

    blue

    The amount of blue in the color as a value in the interval [0, 1].

    alpha

    The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: pixel color = alpha * (this color) + (1.0 - alpha) * (background color) This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val alpha: Option[Float]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. val blue: Float
  7. def clearAlpha: Color
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  9. def companion: Color.type
    Definition Classes
    Color → GeneratedMessage
  10. def discardUnknownFields: Color
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. def getAlpha: Float
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def getField(__field: FieldDescriptor): PValue
    Definition Classes
    Color → GeneratedMessage
  16. def getFieldByNumber(__fieldNumber: Int): Any
    Definition Classes
    Color → GeneratedMessage
  17. val green: Float
  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. val red: Float
  23. def serializedSize: Int
    Definition Classes
    Color → GeneratedMessage
  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. final def toByteArray: Array[Byte]
    Definition Classes
    GeneratedMessage
  26. final def toByteString: ByteString
    Definition Classes
    GeneratedMessage
  27. final def toPMessage: PMessage
    Definition Classes
    GeneratedMessage
  28. def toProtoString: String
    Definition Classes
    Color → GeneratedMessage
  29. val unknownFields: UnknownFieldSet
  30. def update(ms: (Lens[Color, Color]) ⇒ Mutation[Color]*): Color
    Definition Classes
    Updatable
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  34. def withAlpha(__v: Float): Color
  35. def withBlue(__v: Float): Color
  36. def withGreen(__v: Float): Color
  37. def withRed(__v: Float): Color
  38. def withUnknownFields(__v: UnknownFieldSet): Color
  39. final def writeDelimitedTo(output: OutputStream): Unit
    Definition Classes
    GeneratedMessage
  40. def writeTo(_output__: CodedOutputStream): Unit
    Definition Classes
    Color → GeneratedMessage
  41. final def writeTo(output: OutputStream): Unit
    Definition Classes
    GeneratedMessage

Inherited from Product

Inherited from Equals

Inherited from Updatable[Color]

Inherited from GeneratedMessage

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped