Bir renk paleti, adresleme sistemidir. 3 farklı kanaldan oluşur. Her bir renk kanalı başına 256 farklı renk desteklenirken bu renkler karıştırılırsa
(*: kombinasyon)
16.777.216 farklı renk adreslenmiş olur. Bunun için 3 tane renk tonu yan yana dizilmelidir. Böylece bir piksel 16 milyonluk renk havuzu içinden bir tanesine refere edilmiş olur.
Bu bilgi decimal sistemde örneğin 119 103 120 gibi gösterilebilir.
Bu renk hexadecimal olarak
#fac814
yeniden düzenlenebilir. Bu rengin 16'lık sayı düzeniyle ifade edilmesidir. Fark ettiğiniz gibi harcanan veri kısaldı.
Veya tam sayı olarak ifade edilebilir.
renklerimiz şöyle olsun;
red = 119
green = 103
blue = 120
alpha = 25
paket = ( red * 65536 ) + ( green * 256 ) + blue + ( alpha * 16777216 )
419430400
Bu tam sayı, yukarıda verdiğimiz rengi temsil eden bir veri paketidir. Üzerinde
karekök sıkıştırma gibi karmaşık işlemler uygulamak için oldukça kullanışlı bir veridir.
Bu sayıdan geri renk kodlarını elde etmek de kolay bir işlemdir. Bit düzeyinde soldan sağa kaydırma yapılarak orijinal rengi elde etmek mümkündür.
( 419430400 >> 24 ) & 0xff = alpha kanalını verir
( 419430400 >> 16 ) & 0xff = red kanalını verir
( 419430400 >> 8 ) & 0xff = green kanalını verir
419430400 & 0xff = blue kanalını verir
Bu yaptığımız işlem bir rgb işlemi veya renk hesaplama vs. değil aslında. 24 bit uzunluğundaki bir tam sayının bitlerini kaydırıp 24, 16, 8 gibi başka tam sayıların bitleriyle mantıksal sınamaya tutarak tamsayıyı oluşturan elemanları parçalarına ayırmış oluruz. Diğer bir deyişle bu yaptığımız, bit düzeyinde aritmetik işlemden başka bir şey değil. Bu bakımdan bir rengi paketleyerek aslında o rengin bit maskesini üretmiş oluruz ve rengi tek parça haline getirip taşınmasını kolaylaştırmış oluruz.