我正在C#中做一些图形,并且需要将6位rgb十六进制(如0xaabbcc(rr gg bb))转换为3个RGB值。我不想使用Color
。我没有为Windows开发,因此我不想使用Microsoft.CSharp
库。即使有一些解决方法,我并不是很喜欢.NET框架,但我更喜欢创建自己的类库等等。如何从24位十六进制(无.NET框架)获取RGB值
我能够将3个RGB值转换为一个十六进制数字,但我不知道如何做相反的事情。
private static long MakeRgb(byte red, byte green, byte blue)
{
return ((red*0x10000) + (green*0x100) + blue);
}
有我的原始转换代码。
任何人都知道将6位十六进制数分成3个独立字节的好方法吗?
编辑:
我不使用.NET Framework,不使用单声道,和我做不访问的System.Drawing.Color。
这不应该被标记为重复,因为它与.NET无关。
使用Color有什么问题?它不在Microsoft.CSharp中。它在System.Drawing中,并且可以在Mono中使用。 – abatishchev
@Cyber如果你不是为Windows开发的,我假设你使用Mono,它有'System.Drawing.Color' *和*'Microsoft.CSharp'。你不必避免使用它们。 –
如果你想长时间存储它们,你可以使用位掩码 – Elipzer