十六進制轉RGB色值

項目開發中設計給出的色值通常是以#號開頭的十六進制色值(eg:#efa2b1)然而iOS 中使用的確是RGB三原色,所以直接利用一個宏定義將十六進制色值轉換為三原色寫代碼時就很方便了。

#define ColorFromHexColor(hexValue) [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0 green:((float)((hexValue & 0x00FF00) >> 8)) / 255.0 blue:((float)(hexValue & 0x0000FF)) / 255.0 alpha:1.0f]

ps :hexValue 傳值為十六進制色值(eg:0xefa2b1)0x開頭表示該值為十六進制的數字

eg: #efa2b1 ef 代表紅色的16進制RGB色值
a2 代表綠色的16進制的rgb色值
b1 代表藍色的16進制的rgb色值

三原色計算方式:1位與運算(&位與運算符)2右移運算(>>右移運算符)得到rgb色值
以紅色的計算方式為例
eg : RED 0xefa2b1&0xFF0000 (進行位與運算) 0xef0000—(進行右移運算,又移的位數是以二進制位數來計算的一位十六進制的數值對應4位二進制的數值)0xef0000 右移16位后得到16進制表示的紅色的色值為 0xef

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容