2010-04-08 34 views
2

什麼是在.NET中用數字表示顏色的最佳格式,以便我不必使用Color對象?現在我將顏色保存爲HTML表示,但爲了使用它,我必須將其解析出來。顏色的數字表示

我正在處理一個800x600的畫布,它爲每個像素存儲一個顏色值,我需要儘可能快地渲染顏色,而不會將我的應用程序膨脹到存儲500k +顏色對象。

+0

16位或32位顏色顯然可以存儲在任何16位或32位數據類型中。 – 2010-04-08 20:56:50

回答

6

您可以使用標準Int32來存儲顏色。

這是特別好的,因爲框架中的顏色類型直接通過Color.ToArgb()Color.FromArgb()以及類似的方法支持此類型。

4

顏色是24位RGB或32位RGBA值 - 很容易在32位int中表示。 Color結構只是包裝這個以使訪問更加方便,但是如果你走低級(像素或調色板數據在一個位圖像素),就是這樣。

如果你存儲大陣的顏色,然後用位圖和簡單地設置/讀取您感興趣的位置的像素值。

1

顏色結構的一個實例只有4名成員(阿爾法,紅色,綠色,藍色),每種類型Byte。因此,您可以使用32位整數來存儲每種顏色,但是如果有的話,您可能不知道您最終保存了多少內存...

當然,如果您不需要全部4個顏色通道,您可以使用較小的結構來存儲您需要的通道(EG,只需使用一個字節來存儲紅色),並節省一大片空間。