2010-04-13 35 views
4

我目前正在調查顏色處理/選擇等,並遇到以下代碼段。我想知道有人可以告訴我下面這段代碼在做什麼,併爲我分解謝謝!PHP顏色操作

$newVal = round(round(($rgb['red']/0x33)) * 0x33); 

在particluar什麼是0x33在adavnce

回答

3

它似乎是將$rgb['red']轉換爲0x33的最接近倍數。

它可能是這樣做的,所以顏色最終會出現在所謂的「web安全」調色板上,如果我記得正確的話,它包含rgb值爲0x33倍數的顏色。

0x33是51(十進制)的基數-16(十六進制)表示形式。

0

0x33

由於是33

只是十六進制值我真的不知道發生了什麼,但我的猜測它可以計算任何顏色的網頁安全十六進制。或者沿着這些線路。

1

0x33是51,因此它將單個字節的0-255值縮放到0-5,然後將其縮小回去。這導致該值被設置爲比該值低51的最高倍數。

0

正如@Seth指出的那樣,它將顏色舍入到最接近的「網頁安全」顏色。這是一個古老的想法,可以追溯到大多數彩色顯示器都是8位的時候。其中一個受歡迎的人是Visibone,因爲他們的「網頁安全色表」是他們的第一個產品。

請參閱Web Colours瞭解更多信息。