2013-03-28 251 views
-3

我有以下顏色值 - 0xFFFF40,0xFFFF20,0xff5099。如何將顏色值轉換爲RGB

我想將這些C++代碼轉換爲RGB值,我該如何去做這件事?

感謝

編輯: 我基本上會想這些值在3個不同的簽名短褲存儲:

unsigned short red; 
unsigned short green; 
unsigned short blue; 
+0

顏色值'0xff5099'代表'ff'的紅色值,'50'的綠色值和'99'的藍色值,您還需要什麼? – Oswald

+0

能否詳細說明在轉換完成後如何存儲它們以及如何將它們按原樣存儲? – 2to1mux

+0

嗯...我不知道這件事。我可以問,'0x'是什麼意思? – Danny

回答

13

你可以得到每個通道的通過屏蔽出來單獨:

// Original color 
std::size_t color = 0xFFFF40; 
std::size_t red = (color & 0xff0000) >> 16; 
std::size_t green = (color & 0x00ff00) >> 8; 
std::size_t blue = (color & 0x0000ff); 
+2

你可能也想改變它們。 –

+0

啊,當然!感謝您的支持! –

+1

移位是位(16/8)不是半字節(4/2)。 ;) – syam