C#中基于位的BinaryWriter

前端之家收集整理的这篇文章主要介绍了C#中基于位的BinaryWriter前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究基于位的B / W / Greyscale预编译字体格式,并且在阅读或编写格式时遇到了问题,(我无法确定问题的位置.(我确实有基于B / W位的版本工作,但是别名字体看起来不太好,正如您可以想象的那样,特别是在使用320×200像素屏幕时))但是决定只使用BinaryWriter比写入更容易当我拉动图像数据时,一个bool [].

文件中像素的基本格式如下所示:

1 – 白色像素(最短,因为这将是大多数像素)

00 – 黑色像素(无理由为纯黑色像素写入10位,其中有合理的数量)

01 – 灰度像素,后跟1个字节,描述像素的阴影

现在,编写所需信息的一切都很好,花花公子,因为这是全部字节,但默认的.Net 4.0 BinaryWriter将布尔值写为完整字节,并且可以想象,这会否定基于位的使用格式.所以我想知道,有没有BinaryWriter,(和BinaryReader)实现那里的基于位的

编辑:
我最终创造了自己的. (请参阅代码的答案.)

解决方法

我不相信框架中有任何东西,不,不.基本上你需要编写一个类来包装BinaryWriter(或只是一个流)和“到目前为止写的字节”和写入的位数.当位数达到8时,将字节写入基础流并清除.

编辑:OP发布了上述建议below的可行和可行的实现.

猜你在找的C#相关文章