當檢查此方法時,我期望紅色,綠色和藍色在0-255範圍內。相反,它在0-1。UIColor colorWithRed中的奇怪參數:綠色:藍色:alpha:
我是唯一一個認爲這很奇怪的人嗎?
是否有任何理由不使用更常見的0-255值的RGB,甚至是十六進制數字(如HTML)?
當檢查此方法時,我期望紅色,綠色和藍色在0-255範圍內。相反,它在0-1。UIColor colorWithRed中的奇怪參數:綠色:藍色:alpha:
我是唯一一個認爲這很奇怪的人嗎?
是否有任何理由不使用更常見的0-255值的RGB,甚至是十六進制數字(如HTML)?
原因有時RGB值表示爲浮點值,而不是0到255,因爲0到255假設你正在使用8位來表示每個顏色分量和因此必須爲幀緩衝區中的每種顏色使用24位。如果您使用的顯示器總共只支持256種顏色或1600多萬種顏色,則情況可能不是這樣。 理論上,可以是無限數量的紅色,綠色或藍色。用來表示它們的位數取決於您需要表示顏色的準確度以及圖形卡上用於表示圖像的內存量等。 對於許多情況下,0到255是很好的。但是還有另一個世界,那裏不好,對於那些設備/準確的渲染要求,浮點數提供了一個非常需要的選擇。
在我看來,這並不奇怪。 0-255和0.0-1.0級別都廣泛用於不同的平臺。您可以隨時轉換,通過使用這樣的事情:
#define FLOAT_COLOR_VALUE(n) (n)/255.0