Похоже, вы задаете здесь два вопроса, позвольте мне сделать еще один удар. В любом случае, вы захотите использовать класс BitConverter
.
С этой страницы :
Порядок следования байтов 32-битного ARGB
значение равно AARRGGBB.
Итак, чтобы реализовать ToArgb()
, вы могли бы написать метод расширения , который делает что-то вроде этого:
public static int ToArgb(this System.Windows.Media.Color color)
{
byte[] bytes = new byte[] { color.A, color.R, color.G, color.B };
return BitConverter.ToInt32(bytes, 0);
}
И для «декомпозиции Int, возвращаемого ToArgb () для использования с FromArgb ()», вы можете сделать это:
byte[] bytes = BitConverter.GetBytes(myColor.ToArgb());
byte aVal = bytes[0];
byte rVal = bytes[1];
byte gVal = bytes[2];
byte bVal = bytes[3];
Color myNewColor = Color.FromArgb(aVal, rVal, gVal, bVal);
Надеюсь, это поможет.