【发布时间】:2012-07-12 13:46:04
【问题描述】:
我的目标是使用 Windows Mobile 设备上的相机拍照并将该图像转换为单色位图,以便可以使用 .NET Compact Framework 在蓝牙打印机上打印。我在这里找到了我正在寻找的答案:
Convert image to 1 bpp bitmap in .net compact framework
当我添加此代码并使用我用相机拍摄的图像(大小约为 300K 的 .jpg 文件)进行测试时,我将该图像从上述 stackoverflow 解决方案中的代码传递到代码中,并且它没有错误地完成。查看位图时,它是一个纯黑色的图像。
传入代码的原始位图需要一定的分辨率还是有其他限制?用相机拍摄的原始图像一开始是黑白的。
【问题讨论】:
-
原始图像实际上是黑白的,还是灰度的?因为它可能会将任何带有一丝色彩的东西视为黑色,而只有纯白色视为白色。
-
是的,这是我的猜测,它实际上是一个“彩色”图像,可能不包含单个白色像素,但我认为它应该将任何图像转换为单色。
-
如果这是真的,我认为您必须先根据阈值手动清理图像,然后再对 1BPP DeviceContext 执行
DrawImage。 Bitmap.LockBits 然后循环遍历每个像素并首先将其设置为白色或黑色可能是唯一的方法。您必须决定在哪一点像素有足够的颜色将其称为黑色。 -
我想你可能想要 256 色灰度作为结果,而不是 1bpp。 1bpp 意味着一个像素是黑色或白色,没有中间,非常适合文本文档。对于一张照片,它看起来会很糟糕。
标签: c# bitmap windows-mobile compact-framework