我的目标是在Windows Mobile设备上使用相机拍摄一张照片,并将该图像转换为单色位图,以便它可以使用蓝牙打印机在蓝牙打印机上打印。 .NET Compact Framework。我发现我在这里寻找答案:在.NET Compact Framework上将位图转换为单色后的纯黑色图像
Convert image to 1 bpp bitmap in .net compact framework
当我加入这个代码,并与我拿着摄像机的图像(.JPG文件大小约为300K)测试,我通过了图像进入代码来自上面的stackoverflow解决方案中的代码,并且完成时没有错误。查看位图时,它是纯黑色的图像。
传递到代码中的原始位图是否需要某个分辨率或是否存在其他限制?用相机拍摄的原始图像是黑色和白色开始。
原始图像实际上是黑白的,还是灰度?因为它可能会将任何颜色的东西都当作黑色处理,只有纯白色的处理才是白色的。 – 2012-07-12 18:24:50
是的,这是我的猜测,它实际上是一个“彩色”图像,可能不包含单个白色像素,但我认为它应该将任何图像转换为单色。 – 2012-07-12 18:39:53
如果这是真的,我认为你必须在1BPP DeviceContext上执行'DrawImage'之前先根据阈值手动擦洗图像。 [Bitmap.LockBits](http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx),然后遍历每个像素并将其设置为白色或黑色可能是唯一的方法。你必须决定在哪一点像素有足够的颜色称之为黑色。 – 2012-07-12 18:50:21