2014-10-20 5 views
-1

Мне нужно каким-то образом преобразовать System.Windows.Media.Color в Java int со следующим форматом: 0x00RRGGBB в C#. Есть идеи? Благодаря!System.Windows.Media.Color to Java int

+1

Действуй. Я не понимаю, каков ваш вопрос, хотя ... у вас возникают проблемы с реализацией вашей идеи? Что это за проблемы? – Krease

+0

Java дает вам новый цвет (r, g, b, a) .getRGB(); ' –

ответ

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

+0

Нет проблем. Не знаете, почему ваш вопрос получил не по теме или что-то еще. Мне это показалось достаточно ясным. Ну что ж. – peaceoutside