为什么 .NET `PixelFormat` 有一个 `Format8bppIndexed` 元素?
Why is .NET `PixelFormat` has an `Format8bppIndexed` element?
一组8位可以存储256个值。
一个灰度级可以有 256 种变化。
那么,他们为什么需要 Format8bppIndexed
?为什么是Indexed
?
为什么不Format8bpp
?
它被编入索引是因为每个值都是颜色 table 的索引,颜色很可能是 RGB 或 RGBA,具有更大的深度。例如,您可以有一个 32 位条目的调色板(红色、绿色、蓝色和 alpha 各 8 位),但调色板本身只有 256 个条目,因此您可以用一个字节表示每个像素。这在 PNG 文件中是(或至少曾经是)常见的。
如果您查看 PixelFormat
枚举,您会发现大多数值由两条信息组成:
- 位数
- 这些位代表什么,出于:
- 灰度
- ARGB/RGB
- 索引
一组8位可以存储256个值。
一个灰度级可以有 256 种变化。
那么,他们为什么需要 Format8bppIndexed
?为什么是Indexed
?
为什么不Format8bpp
?
它被编入索引是因为每个值都是颜色 table 的索引,颜色很可能是 RGB 或 RGBA,具有更大的深度。例如,您可以有一个 32 位条目的调色板(红色、绿色、蓝色和 alpha 各 8 位),但调色板本身只有 256 个条目,因此您可以用一个字节表示每个像素。这在 PNG 文件中是(或至少曾经是)常见的。
如果您查看 PixelFormat
枚举,您会发现大多数值由两条信息组成:
- 位数
- 这些位代表什么,出于:
- 灰度
- ARGB/RGB
- 索引