在.NET中用数字表示颜色的最佳格式是什么,这样我就不必使用Color对象了?现在我将颜色保存为HTML表示,但为了使用它我必须解析它。
我正在处理一个800x600的画布,它存储每个像素的颜色值,我需要能够尽可能快地渲染颜色,而不会使我的应用程序膨胀到存储500k +颜色对象。
答案 0 :(得分:6)
您可以使用标准Int32来存储颜色。
这是特别好的,因为框架中的颜色类型直接通过Color.ToArgb()和Color.FromArgb()以及类似的方法支持这一点。
答案 1 :(得分:4)
颜色是24位RGB或32位RGBA值 - 易于以32位int表示。 Color结构只是包装它以使访问更方便,但是如果你进入低级别(位图像素中的像素或调色板数据)就是这样。
如果您要存储大量颜色,请使用位图,只需设置/读取您感兴趣的位置的像素值。< / p>
答案 2 :(得分:1)
颜色结构的一个实例只有4个成员(Alpha,Red,Green,Blue),每个成员都有Byte
个类型。所以你可以使用32位整数来存储每种颜色,但是如果有的话,你可能会对你最终保存的内存感到不知所措......
当然,如果您不需要所有4个颜色通道,您可以使用较小的结构来存储您需要的通道(EG,只需使用字节存储红色),并节省大量的空间。 / p>
答案 3 :(得分:0)
这是你需要的吗?
您只需要使用Color.FromArgb()和Color.ToArgb()来获取颜色。