0

我将如何获取 24 位的 BMP 并将其转换为单色位图?我不担心失去颜色等,我不想使用其他文件格式。

4

1 回答 1

3

基本上有两种方法。您可以使用互操作方法读取原始 BMP 数据并为单色位图写入原始 BMP 数据。有谷歌搜索功能可以做到这一点。

或者,更好的是,您可以使用 ImageMagickObject 使用随机抖动转换图像。

做第二个。

如果你做第一个,你仍然应该使用随机抖动,但你必须手动实现它。

编辑:您问“以下 RGB 值会变成什么”……答案是它们变成了您希望它们变成的样子。你决定。

显而易见的选择是使用严格的阈值,其中小于 X 的任何东西都变成黑色,任何东西都变成白色,或者您可以使用随机抖动。选择两个阈值,黑色阈值bt和白色阈值wt,这样0 < bt < wt < 255q然后为每个点选择一个0.0 之间的随机数。和 1.0。将像素亮度 ( (r+g+b)/3) 与 进行比较(q*(wt-bt)+bt)。如果大于或等于,则为白色,如果小于或等于黑色。这会给你一个很好的抖动灰度。对于大多数用途,31 和 224 是 bt 和 wt 的好值,但对于摄影图像,0 和 255 可能更好。

于 2012-05-23T20:52:18.310 回答