- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 BitmapSource (RGB),我希望将其转换为 8bpp 灰度。这是我使用的代码:
BitmapSource ConvertToGray8(BitmapSource bitmap)
{
FormatConvertedBitmap newFormattedBitmapSource = new FormatConvertedBitmap();
newFormattedBitmapSource.BeginInit();
newFormattedBitmapSource.Source = bitmap;
newFormattedBitmapSource.DestinationFormat = PixelFormats.Gray8;
newFormattedBitmapSource.EndInit();
return newFormattedBitmapSource;
}
但是,如果我查看生成的字节,我会得到如下信息:
66 66 66 66 77 ff ff ee ff ff ff ff ff ff ff ff ff ee ff ff ff 00 00 00 11 00 00 00 ff
ff dd ff ff ff ff ff ff ff ff ff ff bb 88 88 88 88 ff ff ff ff 99 88 88 88 aa ff ff ff
ff ff ff ff ff ff ff dd ff 88 00 ff ff 22 ff ff 00 88 ff dd ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff dd ff ff cc 66 66 66 66 66 aa ff ff dd ff ff ff ff ff ff ff ff
ff ff dd ff ff 33 00 11 11 11 00 22 ff ff dd ff ff ff ff ff ff ff ff ff ff ff 77 88
似乎只用了 4 位来转换(即 0x0-0xF),然后它们被重复生成 8 位(即 0x00-0xFF)。结果是具有 16 个灰度级别的 8 位图像。
有什么线索吗?如果可能的话,我想尽量避免手工转换。我很好奇为什么它会这样转换。
编辑:
我还使用了 the project显示在 this article结果相同。我开始认为没有真正的 8bpp 灰度(至少就 BMP 而言)并且它与索引有关。今天晚些时候将对此进行调查,如果有任何新情况出现,将进行更新。使用同一个项目,8bpp TIFF 似乎可以正确保存。
最佳答案
例如 FF 的值是 4 + 4 = 8 位。并不是只有四位用于转换,而是字节显示为十六进制数字,这需要至少 4 位在一起。因此,数据中的每个字节都被显示为由空格分隔的两个十六进制数字。
我猜,每个字节值对应于 256 色标中的一种灰色变体。因此,当您的图像通过 256 色标时,它可能会减少到相应的 16 种灰色,而不是单独的 8 位灰度。
关于c# - 使用 FormatConvertedBitmap 将位图转换为 Gray8 仅使用 4 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160495/
我使用下面的代码将 RGB tif 文件转换为 CMYK 格式。它在我的本地开发机器 (Windows 7) 上运行良好,但在我们的 Windows 2003 生产服务器上抛出此错误。 错误:~~~~
我是 C# 新手。 如前所述,我想将 FormatConvertedBitmap 转换为 Stream。我找不到任何方法。我想将 FormatConvertedBitmap 保存或写入文件,以便将其作
我无法理解如何使用 FormatConvertedBitmap 将我拥有的 WriteableBitmap 从 Pbgra32 转换为 Bgr32 .我正在构建的应用程序最初使用 Bgr32,我引入了
我有一个 BitmapSource (RGB),我希望将其转换为 8bpp 灰度。这是我使用的代码: BitmapSource ConvertToGray8(BitmapSource bitmap)
我是一名优秀的程序员,十分优秀!