com.google.api.services.vision.v1.model.Color Maven / Gradle / Ivy
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* This code was generated by https://github.com/google/apis-client-generator/
* (build: 2017-11-07 19:12:12 UTC)
* on 2018-01-06 at 04:03:32 UTC
* Modify at your own risk.
*/
package com.google.api.services.vision.v1.model;
/**
* 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: green: blue: 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(''); };
*
* // ...
*
* This is the Java data model class that specifies how to parse/serialize into the JSON that is
* transmitted over HTTP when working with the Google Cloud Vision API. For a detailed explanation
* see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class Color extends com.google.api.client.json.GenericJson {
/**
* 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).
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Float alpha;
/**
* The amount of blue in the color as a value in the interval [0, 1].
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Float blue;
/**
* The amount of green in the color as a value in the interval [0, 1].
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Float green;
/**
* The amount of red in the color as a value in the interval [0, 1].
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Float red;
/**
* 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).
* @return value or {@code null} for none
*/
public java.lang.Float getAlpha() {
return 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).
* @param alpha alpha or {@code null} for none
*/
public Color setAlpha(java.lang.Float alpha) {
this.alpha = alpha;
return this;
}
/**
* The amount of blue in the color as a value in the interval [0, 1].
* @return value or {@code null} for none
*/
public java.lang.Float getBlue() {
return blue;
}
/**
* The amount of blue in the color as a value in the interval [0, 1].
* @param blue blue or {@code null} for none
*/
public Color setBlue(java.lang.Float blue) {
this.blue = blue;
return this;
}
/**
* The amount of green in the color as a value in the interval [0, 1].
* @return value or {@code null} for none
*/
public java.lang.Float getGreen() {
return green;
}
/**
* The amount of green in the color as a value in the interval [0, 1].
* @param green green or {@code null} for none
*/
public Color setGreen(java.lang.Float green) {
this.green = green;
return this;
}
/**
* The amount of red in the color as a value in the interval [0, 1].
* @return value or {@code null} for none
*/
public java.lang.Float getRed() {
return red;
}
/**
* The amount of red in the color as a value in the interval [0, 1].
* @param red red or {@code null} for none
*/
public Color setRed(java.lang.Float red) {
this.red = red;
return this;
}
@Override
public Color set(String fieldName, Object value) {
return (Color) super.set(fieldName, value);
}
@Override
public Color clone() {
return (Color) super.clone();
}
}