RGB和HEX顏色互相轉(zhuǎn)換

  1. 常見(jiàn)的幾種表示顏色的方法有:

    • ColorName: 直接用顏色的名稱來(lái)指定顏色
      • 優(yōu)點(diǎn): 很直觀的表達(dá)想要使用的顏色
      • 缺點(diǎn): 顏色的名稱很少, 不能有效表示一些較為豐富的顏色
    • RGB: 三通道顏色
      • 他是目前運(yùn)用最廣泛的顏色系統(tǒng)之一
      • 可以通過(guò)紅綠藍(lán)三色通道, 外加alpha透明度, 來(lái)展示幾乎所有的顏色
      • RGB是從顏色的發(fā)光原理來(lái)設(shè)定的, 相當(dāng)于紅綠藍(lán)三個(gè)顏色通過(guò)不同亮度, 來(lái)組合成為需要的顏色
      • 0為最暗, 255為最亮
    • HEX: 十六進(jìn)制顏色
      • 十六進(jìn)制與RGB都可以展示出非常豐富的顏色, 他是通過(guò)16進(jìn)制0~F這16個(gè)字符來(lái)表達(dá)顏色的
      • 同樣, 000000為黑色, FFFFFF為白色
  2. RGB轉(zhuǎn)換為HEX

    • RGB與HEX中每個(gè)顏色都是一一對(duì)應(yīng)的關(guān)系, 如下面的附表所示
    • RGB的數(shù)值 = 16 * HEX的第一位 + HEX的第二位
    • 示例如下:
      • RGB: 92, 184, 232
        • 92 / 16 = 5余12 -> 5C
        • 184 / 16 = 11余8 -> B8
        • 232 / 16 = 14余8 -> E8
        • HEX = 5CB8E8
  3. HEX轉(zhuǎn)換RGB

    • 此轉(zhuǎn)換就是將上述的轉(zhuǎn)換逆轉(zhuǎn)即可
    • 示例如下
      • HEX: F26BC1
        • F2 = 15和2 -> 15 * 16 + 2 = 242
        • 6B = 6和11 -> 6 * 16 + 11 = 107
        • C1 = 12和1 -> 12 * 16 + 1 = 193
  4. OC代碼, 16進(jìn)制轉(zhuǎn)換為RGB形式的UIColor

    • 首先, 代碼如下
        #define UIColorFromRGB(rgbValue) \
        [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \
        green:((float)((rgbValue & 0x00FF00) >> 8)) / 255.0 \
        blue:((float)((rgbValue & 0x0000FF) >> 0)) / 255.0 \
        alpha: 1.0]
  • 接下來(lái)說(shuō)一下代碼的意思

    • 首先, rgbValue是一個(gè)十六進(jìn)制的參數(shù), 里面需要傳入一個(gè)16進(jìn)制的數(shù)字, 這里需要注意16進(jìn)制的數(shù)字一定要以0x開(kāi)頭, 如0x4F8ADE
    • (rgbValue & 0xFF0000) >> 16, 先做按位與運(yùn)算, 然后按位右移
      1. 將兩個(gè)16進(jìn)制轉(zhuǎn)換為2進(jìn)制的數(shù)字
      2. 按位與, 兩位只要出現(xiàn)0, 結(jié)果就為0
      3. 將結(jié)果按位移動(dòng)16位(這里是為了獲取得到的16進(jìn)制的前兩位)
      4. 將得到移動(dòng)后的2進(jìn)制, 轉(zhuǎn)換為10進(jìn)制, 然后除以255.0, 結(jié)果就是對(duì)應(yīng)的顏色值
  • 以上就是16進(jìn)制顏色轉(zhuǎn)為2進(jìn)制的步驟, 鼓勵(lì)自己學(xué)習(xí)研究更多~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • CSS 通過(guò)使用十六進(jìn)制代碼設(shè)置特定的顏色預(yù)覽模式 你是否知道在 CSS 中還有其他表示顏色的方法?其中的一種方法...
    followyounger1閱讀 975評(píng)論 0 1
  • 網(wǎng)站亂碼問(wèn)題我們會(huì)經(jīng)常碰到,大多見(jiàn)于非英文的中文字符或其他字符亂碼,而且,這類問(wèn)題常常是因?yàn)榫幋a方式問(wèn)題,主要原因...
    波段頂?shù)?/span>閱讀 3,326評(píng)論 1 9
  • 前言 大家都知道iOS的UIColor提供的自定義初始化是通過(guò)RGB(A) 4個(gè)10進(jìn)行制的參數(shù),那么為什么用16...
    iHTCboy閱讀 818評(píng)論 0 1
  • 今天寫一篇關(guān)于RGB轉(zhuǎn)Hex 和 Hex 轉(zhuǎn) RGB的文章,首先可以先點(diǎn)下面這篇進(jìn)行基礎(chǔ)補(bǔ)充 十進(jìn)制與十六進(jìn)制互轉(zhuǎn)...
    瞬步刀式閱讀 1,224評(píng)論 0 1
  • 當(dāng)我在已經(jīng)忘記了還有 HSL 這么個(gè)東西,最近卻又用上了它的時(shí)候,我覺(jué)得還是有必要寫一點(diǎn)關(guān)于顏色的總結(jié)(不涉及 I...
    七月初七的柒閱讀 1,734評(píng)論 0 0

友情鏈接更多精彩內(nèi)容