Package google.type

Dizin

Renk

RGBA renk alanındaki bir rengi temsil eder. Bu sunum, kompaktlık yerine, çeşitli dillerdeki renk gösterimlerine ve bu gösterimlerden dönüştürmenin basitleştirilmesi için tasarlanmıştır. Örneğin, bu temsilin alanları, Java'da java.awt.Color oluşturucuya standart bir şekilde sağlanabilir; Ayrıca, iOS'te UIColor'ın +colorWithRed:green:blue:alpha yöntemine de sağlanabilir; ve küçük bir çalışmayla, JavaScript'te bir CSS rgba() dizesi olarak kolayca biçimlendirilebilir.

Bu referans sayfasında, RGB değerini yorumlamak için kullanılması gereken mutlak renk alanıyla ilgili bilgiler (ör. sRGB, Adobe RGB, DCI-P3 ve BT.2020) yer almaz. Varsayılan olarak uygulamalar sRGB renk alanını kabul etmelidir.

Renk eşitliğinin belirlenmesi gerektiğinde, aksi belirtilmediği sürece uygulamalarda iki rengin tamamının kırmızı, yeşil, mavi ve alfa değerlerinin her biri en fazla 1e-5 farklılık gösterdiği takdirde eşit kabul edilir.

Örnek (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();
 }
 // ...

Örnek (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;
}
// ...

Örnek (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('');
};

// ...
Alanlar
red

float

[0, 1] aralığındaki bir değer olarak renkteki kırmızı miktarı.

green

float

[0, 1] aralığındaki bir değer olarak renkteki yeşilin miktarı.

blue

float

[0, 1] aralığındaki bir değer olarak renkteki mavi miktarı.

alpha

FloatValue

Bu rengin piksele uygulanması gereken oranı. Yani son piksel rengi denklemle tanımlanır:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

Bu, 1,0 değeri düz bir renge karşılık gelirken, 0.0 değeri tamamen şeffaf bir renge karşılık gelir. Bu yöntem, varsayılan değer ile ayarlanmayan değeri birbirinden ayırt edebilmek için basit bir kayan skaler yerine bir sarmalayıcı mesajı kullanır. Atlanırsa bu renk nesnesi düz renk olarak oluşturulur (alfa değerine açık bir şekilde 1, 0 değeri verilmiş gibi).

Tarih

Takvimin tamamını veya bir kısmını temsil eder (ör. doğum günü). Günün saati ve saat dilimi başka bir yerde belirtilmiş veya önemsiz. Tarih, Miladi Takvim'e göredir. Bu, aşağıdakilerden birini temsil edebilir:

  • Sıfır olmayan yıl, ay ve gün değerleriyle tam tarih.
  • Bir ay ve gün ile sıfır yıl (örneğin, bir yıl dönümü).
  • Tek başına bir yıl, sıfır ay ve sıfır gün.
  • Sıfır gün içeren bir yıl ve ay (örneğin, kredi kartı son kullanma tarihi).

İlgili türler:

Alanlar
year

int32

Tarihin yılı. 1 ile 9999 arasında veya yıl içermeyen bir tarihi belirtmek için 0 arasında olmalıdır.

month

int32

Bir yılın ayı. 1 ile 12 arasında veya ay ve gün içermeyen bir yılı belirtmek için 0 arasında olmalıdır.

day

int32

Ayın günü. 1 ile 31 arasında bir değer olmalı ve yıl ve ay için geçerlidir. Yalnızca yılı belirtmek için 0 değerini veya günün önemli olmadığı bir yılı ve ayı belirtmek için 0 değerini girin.

LatLng

Enlem/boylam çiftini temsil eden bir nesne. Bu, enlem ve boylam derecelerini temsil eden bir çift çift olarak ifade edilir. Aksi belirtilmedikçe bu nesne WGS84 standardına uygun olmalıdır. Değerler normalleştirilmiş aralıklar içinde olmalıdır.

Alanlar
latitude

double

Derece cinsinden enlem. [-90,0, +90,0] aralığında olmalıdır.

longitude

double

Derece cinsinden boylam. [-180.0, +180.0] aralığında olmalıdır.