我正在研究基于位的B / W / Greyscale预编译字体格式,并且在阅读或编写格式时遇到了问题,(我无法确定问题的位置.(我确实有基于B / W位的版本工作,但是别名字体看起来不太好,正如您可以想象的那样,特别是在使用320×200像素屏幕时))但是决定只使用BinaryWriter比写入更容易当我拉动图像数据时,一个bool [].
文件中像素的基本格式如下所示:
1 – 白色像素(最短,因为这将是大多数像素)
00 – 黑色像素(无理由为纯黑色像素写入10位,其中有合理的数量)
01 – 灰度像素,后跟1个字节,描述像素的阴影
现在,编写所需信息的一切都很好,花花公子,因为这是全部字节,但默认的.Net 4.0 BinaryWriter将布尔值写为完整字节,并且可以想象,这会否定基于位的使用格式.所以我想知道,有没有BinaryWriter,(和BinaryReader)实现那里的基于位的
编辑:
我最终创造了自己的. (请参阅代码的答案.)
解决方法
我不相信框架中有任何东西,不,不.基本上你需要编写一个类来包装BinaryWriter(或只是一个流)和“到目前为止写的字节”和写入的位数.当位数达到8时,将字节写入基础流并清除.
编辑:OP发布了上述建议below的可行和可行的实现.