繁体   English   中英

在.NET Compact Framework上将位图转换为单色后的纯黑色图像

[英]Solid black image after converting bitmap to monochrome on .NET Compact Framework

我的目标是使用Windows Mobile设备上的相机拍摄照片并将该图像转换为单色位图,以便可以使用.NET Compact Framework在蓝牙打印机上进行打印。 我在这里找到了想要的答案:

在.NET Compact Framework中将图像转换为1 bpp位图

当我添加此代码并用相机拍摄的图像(大小约为300K的.jpg文件)进行测试时,我将该图像传递到上述stackoverflow解决方案中的代码中,并顺利完成。 查看位图时,它是纯黑色图像。

传递给代码的原始位图是否需要一定的分辨率,或者是否有其他限制? 首先,用相机拍摄的原始图像是黑白的。

这是一个棘手的问题。 要获得合理的结果,您真正需要做的是实现一种抖动算法,该算法可使打印机根据原始像素的“黑色”程度来按比例分配空白点和黑色点。 如果将算法限制为仅将每个像素转换为白色或黑色,则输出将不能很好地代表您拍摄的原始照片。 通过抖动,您可以分析输入中的每个像素,并根据输入像素的暗度来调整输出中的周围像素。

常见的抖动实现是Floyd-Steinberg算法,在此处以其基本形式进行了描述:

弗洛伊德-斯坦伯格抖动

如果您在Google上搜索,则有更多信息。

由于要实现的算法并不完全是微不足道的,因此请准备花费一个多下午的时间来使它正确无误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM