[摘要]本文是對關於顏色的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。
光,電磁波和顏色
光是一種電磁波,頻率被限定在較窄的范圍內。
不同頻率(對應不同的波長)的電磁波(光)有不同的顏色。可見光的最長波長是780nm,對應紅色;最短波長是380nm,對應於紫色。
太陽光可以發射可見范圍內所有頻率的波長,表現為白光。當白光遇到物體時,一些頻率的電磁波被反射,一些頻率的電磁波被吸收。反射光中電磁波的頻率決定了我們看到的顏色。
反射光中能量最高的頻率叫做hue(色彩,色調),也叫作color。
顏色與心理效應
當光照到我們的眼睛中時,除了顏色之外,眼睛還有其他的感覺。
- brightness(亮度):光的總能量,也就是電磁波的總能量
purity或saturation(飽和度):描述光和單色的接近程度,可以理解為電磁波的在頻率范圍內的能量分布。如果能量分布在一個頻率上,那麼飽和度最高。
chromaticity(色度,色調)是purity和hue的綜合衡量,和亮度沒有關系。
圖片鏈接
color model
任何可以用一些參數來表示顏色的數學模型叫做color model。
沒有一個模型可以表示所有的顏色。所以我們用不同的顏色模型來描述不同的顏色特性。
在一個color model中,我們選擇一些頻率的光作為基准,賦予這些頻率的光不同的能量,然後把這些光混合起來,得到不同的顏色。這些被選為基准的光叫做primary color,可以用基准光來表示的顏色范圍叫做color gamut。
如果我們選用RGB作為primary color,在不同頻率的光上,RGB的能量值如下。由於能量不能是負的,所以以RGB作為primary color,不能得到500nm附近的光。
XYZ color model
由於不存在三種顏色,它們的組合可以表示所有的顏色,所以就造出來三種不存在的顏色,可以用它們來表示所有的顏色。這三種想象中的顏色叫做XYZ顏色,這種模型叫做XYZ color model。
於是任意一個顏色可以用這三個顏色表示。歸一化以後,可以用兩種顏色來表示所有的顏色。白色所在的點叫做illuminant C。
- 確定color gamut
給定3個顏色,在圖中就是三個點。根據這三個點做出的三角形及其內部的區域就是以這三個基准色為primary color的color gamut。
由於這個圖是曲線,沒有三個點可以覆蓋所有的顏色,因為沒有一個color model可以表示所有的顏色。
確定互補色
一個顏色C1和它的互補色C2一定和C點對稱。C1和C2到C的距離是產生白色需要的能量比值。
確定hue和purity
如圖,確定F點的hue,連接CF,找到和邊緣的交點G,G點代表的頻率即是dominant wavelength。
CF/CG可以表示purity。
-