颜色的数字表示

时间:2010-04-08 20:55:29

标签: c#

在.NET中用数字表示颜色的最佳格式是什么,这样我就不必使用Color对象了?现在我将颜色保存为HTML表示,但为了使用它我必须解析它。

我正在处理一个800x600的画布,它存储每个像素的颜色值,我需要能够尽可能快地渲染颜色,而不会使我的应用程序膨胀到存储500k +颜色对象。

4 个答案:

答案 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)

这是你需要的吗?

  1. http://www.w3.org/TR/REC-html40/types.html#h-6.5
  2. CSS Colour Module Level 3
  3. 您只需要使用Color.FromArgb()和Color.ToArgb()来获取颜色。