16進製制顏色轉換RGB原理

2021-10-07 21:30:35 字數 2159 閱讀 4114

colorname: 直接用顏色的名稱來指定顏色,比如: red blue green yellow

rgb: 三通道顏色

hex: 十六進製制顏色

使用演示:

方式一

[uicolor colorwithred:((

0xf86340

&0xff00

)>>8)

/255.0 green:((

0xf86340

&0xff00

)>>8)

/255.0 blue:((

0xf86340

&0xff))

/255.0 alpha:1]

;

方式二

+

(uicolor *

)ml_colorwithhex:

(uint32)hex alpha:

(cgfloat)alpha

0xf86340 & 0xff0000, 0xf86340 & 0xff00 ,0xf86340 & 0xff分別是什麼意思?

0xf86340 & 0xff0000,表示f863400xff0000進行運算,目的是要取出f86340的前兩位f8,因為f8表示red顏色通道的值,取出來的值已經是轉換好的十進位制的了。

0xf86340

十六進製制:f86

340二進位制:

1111

1000

0110

0011

0100

0000

0xff0000

十六進製制:ff0

000二進位制:1111

1111

0000

0000

0000

0000

位運算專案

0xf86340二進位制:1111

1000

0110

0011

0100

0000

運算子:&

0xff0000二進位制:

1111

1111

0000

0000

0000

0000

(計算結果)二進位制:1111

1000

0000

0000

0000

0000

通過位運算得到結果的1111 1000 0000 0000 0000 0000,如果將此二進位制數轉換為十進位制數,是乙個非常大的數,而每個顏色通道的最大值是255,所以還需要通過位移運算,將得到的結果控制到最大範圍內。

首先我們先看下面乙個二進位制數:

0000 0000 0000 0000 1111 1111===> 該數最大的值是255(十進位制)。

所以我們只要將之前計算的結果位移到最後的八個二進位制位的位置上即可。

1111

1000

0000

0000

0000

0000

>

>

16 右移16位

0000

0000

0000

0000

1111

1000

(位移後的結果)

0xf86340 & 0xff00f86340 & 0xff分別取出十六進製制的6340通過位運算和位移運算 轉換為十進位制,進行顏色值的計算(計算原理和上述一樣)。

RGB顏色如何轉變成16進製制顏色

rgb顏色如何轉變成16進製制顏色 但是它是如何計算的呢,首先,大家要知道10進製對應的10進製表.0對應0,15對應f rgb顏色如何轉變成16進製制顏色 舉例說明,例1 rgb 11,111,222 11 16 0餘11 11對應b 前面補0 那麼hex的資料為0b111 16 6餘15 15對...

iOS 關於16進製制RGB顏色設定問題

針對ui給的標註圖上,色值給的都是16進製制的,如 ed145b,000000等等,那麼我們在 中應該怎麼使用這一色值呢?下面給出幾種方案以供參考!1.寫乙個巨集定義 define ugucolorfromrgb 0x rgbvalue uicolor colorwithred float rgbv...

QT筆記 RGB轉化為16進製制顏色

將rgb的顏色轉化為16進製制的顏色 形式 rgb 0,0,0 000000 返回型別 字串 qstring 1.首先,我們需要得到乙個color 標頭檔案 include 顏色選擇器 qcolor color qcolordialog getcolor qt black,this 選擇你要的顏色 ...