20 Kasım 2019 Çarşamba

Renk Uzayı - HSV (HSB)

Giriş
HSV (Hue, Saturation, Value) anlamına gelir. Açıklaması şöyle. Yani HSV değerleri ile oynayınca RGB değerlerinin bir kaç tanesi değişir.
The HSB model is also known as HSV (Hue, Saturation, Value) model. The HSV model was created in 1978 by Alvy Ray Smith . It is a nonlinear transformation of the RGB color space. In other words, color is not defined as a simple combination (addition/substraction) of primary colors but as a mathematical transformation.
Hue : Renk tonu. Ana rengi belirtir.

Saturation : Rengin doygunluğudur. Hue rengine katılan beyaz ışıktır. Bu değeri yüzde olarak vermek daha kolay. 100% değeri en doygun renk anlamına gelir.  Doygun renkler daha canlı görünürler ve göze daha çok batarlar.
Doygunluk azaldıkça renk grileşir

Value/Brigtness : Aynı zamanda Brigtness olarak ta bilinir. Parlaklık. Bu değeri yüzde olarak daha kolay. Bu değer 0 ise renk siyahtır.
Şeklen şöyle. Burada ufak bir sorun var. V değeri 0.5 olmasına rağmen sağdaki dik çubuktaki beyaz nokta dikey olarak tam ortaya gelmiyor.



Hue Değerine Göre Sıralamak
Hue - yani renk tonuna göre - sıralamak gökkuşağını elde etmek için kullanılabilir.

Açıklaması şöyle.
HSV (also known as HSB) is a color model that transforms RGB colors to make them easier to manipulate and reason with. An HSV color consists of three components, in the following order:

- Hue is an angle from red at 0 to yellow to green to cyan to blue to magenta to red.(7)
- A component called "saturation", the distance of the color from gray and white (but not necessarily from black), is 0 or greater and 1 or less.
- A component variously called "value" or "brightness" is the distance of the color from black and is 0 or greater and 1 or less.
Örnek
Farklı String nesnelerine farklı HSV rengi üretmek için şöyle yaparız.
1. String.hashCode() ile hashCode bulunur.
2. hashCode / (float)X yapılarak hue değeri hesaplanır
3. hashCode / Integer.MAX_VALUE ile (0.0 - 1.0) arasında saturation hesaplanır. Gerekirse saturation belli bir aralıkta olacak şekilde alt ve üst sınır da verilebilir.
4. Brigtness hep 0.9 verilir.
Örnek
Android'de Color.colorToHSV () metodu ile ARGB'den HSV'ye geçiş yapılabilir.

Örnek
Java'da şöyle yaparız.
final float hue = random.nextFloat();
// Saturation between 0.1 and 0.3
final float saturation = (random.nextInt(2000) + 1000) / 10000f;
final float luminance = 0.9f;
final Color color = Color.getHSBColor(hue, saturation, luminance);
- Hue değeri herhangi bir float sayı olabilir.

- Saturation 0.0 ve 1.0 arasında değer alır. Rengin parlaklığıdır. Bu değer 1 ise renkler çok parlak görünür. 0.1 ve 0.3 arasındaki değerler göze daha rahat hitap eden renkler verirler.

- Value 0 is renk siyahtır. 0.9 değeri göze daha rahat hitap eden renkler verirler.


Hiç yorum yok:

Yorum Gönder