[Swift]偵測UIImage的平均顏色、判斷UIColor深淺色

Penny N.
May 23, 2020

--

有時候我們不知道會得到什麼顏色的背景圖片,但卻希望放置在圖片上的label能夠依照圖片的深淺來顯示不同顏色的文字,讓文字更容易被閱讀。這時候我們可以用CIFilter來獲得UIImage的平均顏色,再判斷顏色深淺來改變label text colour。

偵測UIImage的平均顏色

CIFilter中的CIAreaAverage可以計算圖片中指定區域的平均顏色,並回傳以1個pixel呈現的結果,而CIContext可以解析圖片的RGB顏色,將兩者結合就可以解析圖片並回傳一個以UIColor呈現的平均顏色值。

因為這涉及影像處理,所以當圖片很大量時,可能會花費較多時間處理。

判斷UIColor顏色深淺

用RGB可以算出某個顏色的明度,來判斷它是不是深色。

它可以判斷任何的UIColor,所以除了判斷先前得到的UIImage平均顏色,也可以直接判斷background colour。

--

--

Penny N.
Penny N.

Written by Penny N.

A passionate self-taught  iOS developer. Write to record my learning and share the knowledge

No responses yet