加载并保存颜色值

本文关键字:颜色值 保存 加载 | 更新日期: 2023-09-27 17:50:39

我试图加载颜色值从一个文本文件与ReadLine。当用WriteLine保存时,它看起来像这样[Color: R=53, G=40, B=121, A=255, PackedValue=4286130229]。

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

那么我猜它一定是被转换了,我想不出来。颜色? ?stream.ReadLine ();

加载并保存颜色值

如果您使用的是文本存储介质,那么使用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自动选择。无论哪种方式,它都应该可以很好地来回转换。

您要做的是序列化/反序列化。你应该调查一下。但是你可以为每一种颜色保存一行,并使每一行都有一个分号分隔的RGB值列表,这几乎就是你现在所做的。

那么当你读你的行时,你必须用像

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