加载并保存颜色值

时间:2014-03-16 13:39:36

标签: c# colors xna

我正在尝试使用ReadLine从文本文件加载Color值。使用WriteLine保存时,它看起来像[颜色:R = 53,G = 40,B = 121,A = 255,PackedValue = 4286130229]。

Color color = Color.Black;
stream.WriteLine(color.ToString());

然后我猜它必须以某种方式进行转换,无法弄明白。 颜色??? stream.ReadLine();

2 个答案:

答案 0 :(得分:3)

如果您使用的是文本存储媒体,请使用HTML编码:

Color myColor = Color.FromArgb(255, 255, 50, 25);
String strColor = ColorTranslator.ToHtml(myColor);
//write strColor to text file...
String strColor = "";  //read in the color from text file
Color c = ColorTranslator.FromHtml(strColor);

使用此选项,您将存储可以是十六进制(#FFFFFF)或已知颜色名称(黑色)的文本字符串。该方法根据您的Color对象是已知对象还是自定义RGB自动选择。无论哪种方式,它都应该很好地来回转换。

答案 1 :(得分:1)

您要做的是序列化/反序列化。你应该研究一下。 但是你可以为每种颜色保存一条线,并使每一行成为一个以分号分隔的RGB值列表,这几乎就是你现在正在做的事情。

然后当你阅读你的行时,你将不得不用

之类的东西反序列化它
var colorStr = stream.ReadLine().Split(',');
Color clr = Color.FromArgb(colorStr[0],colorStr[1],colorStr[2]);