所以現在我有一個介於0和2^24之間的數字,我需要將它映射到三個RGB值。我在如何完成這件事方面遇到了一些麻煩。任何援助表示讚賞。將整數映射到C#中的RGB顏色
13
A
回答
16
你可以做
Color c = Color.FromArgb(someInt);
然後用c.R
,c.G
和c.B
爲紅色,綠色和藍色值分別
+0
哈,我可以發誓我已經試過了。人爲錯誤,我想。謝謝您的幫助。 – 2011-05-25 22:44:41
13
根據其顏色在這裏,你可以使用比特移位來獲取個人顏色是這樣的:
int rgb = 0x010203;
var color = Color.FromArgb((rgb >> 16) & 0xff, (rgb >> 8) & 0xff, (rgb >> 0) & 0xff);
上述表達式假定爲0x00RRGGBB
,但您的顏色可能是0x00BBGGRR
在這種情況下,只需更改16, 8, 0
左右的值。
這也使用System.Drawing.Color
而不是System.Windows.Media.Color
或您自己的顏色類。這取決於應用程序。
3
可以使用BitConverter
類從INT得到字節:
byte[] values = BitConverter.GetBytes(number);
if (!BitConverter.IsLittleEndian) Array.Reverse(values);
數組將有四個字節。前三個字節包含您的編號:
byte b = values[0];
byte g = values[1];
byte r = values[2];
2
上面的代碼工作的格柵。只是一個小小的更正,需要交換b和r如下。
byte r = values[0];
byte g = values[1];
byte b = values[2];
+0
Sunil,這應該是Guffa的帖子的評論,而不是對原始問題的回答。這主要是因爲你的答案根本不能回答原來的問題。 – Kevek 2011-09-06 22:43:27
相關問題
- 1. 顏色空間映射YCbCr到RGB
- 2. 將彩虹色映射到RGB
- 3. 將值映射到顏色映射顏色
- 4. 將RGB /十六進制顏色代碼映射到一般顏色類別
- 5. 如何將數字映射到顏色?
- 6. 將整數顏色值轉換爲RGB
- 7. 在python中將整型值映射到顏色的範圍
- 8. 如何將一系列顏色映射到整數範圍?
- 9. 在Java中將顏色映射爲整數的方法
- 10. Matplotlib顏色映射:最大顏色數
- 11. 將雙精度值映射到顏色
- 12. Pylab:將標籤映射到顏色
- 13. 將整數轉換爲位圖顏色RGB值C++
- 14. matlab中的顏色映射
- 15. python中的顏色映射
- 16. 將RGB顏色轉換爲C中最接近的ACI顏色#
- 17. 將數值列表映射爲顏色
- 18. 將值映射到整數
- 19. 無法將青色的整數顏色轉換爲RGB
- 20. 如何使用ObjectMapper將[顏色]映射到[字符串:顏色]
- 21. matplotlib中的對數顏色映射
- 22. 將浮點值(0.0,100.0)映射到RGB
- 23. 將深度映射到RGB空間
- 24. 如何將3d表面顏色映射映射到標量函數?
- 25. 如何使用matplotlib的colormap將數字映射到顏色?
- 26. 的Paraview顏色映射
- 27. RGB到HSV顏色的JavaScript?
- 28. RGB到CMY用C++顏色模型
- 29. 如何將一系列整數映射到一個顏色空間?
- 30. 在Java3D中將不同顏色映射到平面上的點
是您的表格0x00RRGGBB(十六進制)的號碼? – 2011-05-25 21:56:17