2014-10-20 128 views
-1

我需要一些方法来将System.Windows.Media.Color转换为具有以下格式的Java int:0x00RRGGBB在C#中。有任何想法吗?谢谢!System.Windows.Media.Color to Java int

+1

去吧。我不清楚你的问题是什么,但你是否遇到了实现你的想法的问题?那些问题是什么? – Krease 2014-10-20 21:13:24

+0

Java为您提供'新颜色(r,g,b,a).getRGB();' – 2014-10-20 21:14:52

回答

1

System.Windows.Media.Color具有Alpha,Red,Green和Blue的属性。

它们都是“字节”类型(值为0-255)。

可以使用一些简单的逐位操作醪这些属性的所有4个到单个无符号32位整数:

public uint ConvertColorToUInt(Color color) 
{ 
    uint value = (color.A << 24) | (color.R << 16) | (color.G << 8) | color.B; 
    return value; 
} 

,或者如果它必须是一个字符串:

public string ConvertColorToJavaString(Color color) 
{ 
    uint value = (color.A << 24) | (color.R << 16) | (color.G << 8) | color.B; 
    var javaString = string.Format("0x{0}", value.ToString("X2")) 
    return javaString; 
} 
+1

谢谢,这正是我所需要的,如果问题没有明确定义,我们深表歉意。 – RajenK 2014-10-21 17:51:52

+0

没问题。不知道为什么你的问题被标记为题外话或其他什么。这对我来说似乎很清楚。好吧。 – peaceoutside 2014-10-21 19:03:06