Color.Builder (Cloud Bigtable HBase Client for Java 0.9.3-SNAPSHOT API)

com.google.type

Class Color.Builder

  • All Implemented Interfaces:
    Message.Builder, MessageLite.Builder, MessageLiteOrBuilder, MessageOrBuilder, ColorOrBuilder, Cloneable
    Enclosing class:
    Color


    public static final class Color.Builder
    extends GeneratedMessageV3.Builder<Color.Builder>
    implements ColorOrBuilder
     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. Here are some examples:
     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 = [Color 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('');
         };
         // ...
     
    Protobuf type google.type.Color