为什么 .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 枚举,您会发现大多数值由两条信息组成:

  • 位数
  • 这些位代表什么,出于:
    • 灰度
    • A​​RGB/RGB
    • 索引