Это из-за этой строки:
printf ("Hi %s,</br />", $name);
Вы не должны печатать / эхо ничего, прежде чем отправлять заголовки.
Если вы создаете свои цвета с помощью Color.FromRgb или Color.FromArgb вместо FromScRgb, вы должны получить результат в виде шестнадцатеричной строки от ToString.
Если вы хотите сделать это вручную
string.Format("#{0:X2}{1:X2}{2:X2}{3:X2}", c.A, c.R, c.G, c.B);
Вы можете использовать int.Parse (, NumberStyles.HexNumber), чтобы пойти другим путем.
Обратите внимание, что sRGB и scRGB относятся к разным цветовым пространствам, убедитесь, что вы используете тот, который вам нужен.
Вы можете получить значения A, R, G и B из экземпляра Color как байты, поэтому вам просто нужно преобразовать байты в шестнадцатеричные и объединить шестнадцатеричные значения в виде строк.
Этот ответ предназначен для цветов GDI, а не для WPF, поэтому может не сильно помочь.
Вы можете получить цветовую строку HTML (и обратно), как это
System.Drawing.Color c = System.Drawing.ColorTranslator.FromHtml("#F5F7F8");
String strHtmlColor = System.Drawing.ColorTranslator.ToHtml(c);
здесь - это документация MSDN.