разбить ARGB на байтовые значения

У меня есть значение ARGB, хранящееся как тип int. Он был сохранен путем вызова ToArgb.

Теперь я хочу значения байтов отдельных цветовых каналов из значения int.

например

int mycolor = -16744448;
byte r,g,b,a;

GetBytesFromColor(mycolor,out a, out r, out g, out b);

Как бы вы реализовали GetBytesFromColor?

Чтобы дать контекст, я передаю значение цвета, сохраненное в db как int, приложению silverlight, которому нужны отдельные байтовые значения для создания цветового объекта.

System.Windows.Media.Color.FromArgb(byte a, byte r, byte g, byte b)

Ответы на вопрос(2)

Решение Вопроса

Итак, сочетание маскировки и смещения:

b = (byte)(myColor & 0xFF);
g = (byte)((myColor >> 8) & 0xFF);
r = (byte)((myColor >> 16) & 0xFF);
a = (byte)((myColor >> 24) & 0xFF);
 nebkat08 дек. 2010 г., 21:06
Как этот процесс полностью изменен?
 Jonas Elfström26 сент. 2012 г., 08:43
mycolor = (a < 24) + (r < 16) + (g < 8) + b;
public void GetBytesFromColor(int color, out a, out r, out g, out b)
{
    Color c = Color.FromArgb(color);
    a = c.A;
    r = c.R;
    g = c.G;
    b = c.B;
}
 AnthonyWJones25 авг. 2009 г., 15:36
-1. Silverlight не имеет этой перегрузки FromArgb.

Ваш ответ на вопрос