问题标签 [monochrome]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5639 浏览

c++ - 从 bitset 创建单色 BMP

我可能需要一些帮助来弄清楚如何提供下面的过程。我需要编写一个单色 BMP 文件。下面的代码(来自:如何在 windows C++ 中将单色图像另存为 bmp ?)看起来能够做到这一点。我现在坚持如何将 astd::bitset或最好boost::dynamic_bitset转换为这种byte*格式。到目前为止,我所有的尝试都失败了,我无法将 8x8 棋盘格模式写入 BMP。proc 创建了 BMP,它可以被 Photoshop 读取,但内容是一团糟。因此,感谢您提出任何解决此问题的建议!

-编辑-

我的一个天真的方法是这样的

0 投票
1 回答
1402 浏览

c++ - c++: 将 24bpp 转换为 8 bpp 或 1bpp 图像

我必须将24bpp图像转换为基于颜色表的1bpp图像或图像。8bpp调用者在任何一种情况下都期望 a unsigned char*(这将被进一步处理,或者现在可能通过将 发送BITMAPINFOHEADER.biBitCount到其正确值 8 或 1 来调试输出)。

我有将颜色索引提取到调色板的代码(colorIndexArray 来自颜色转换或抖动算法)...我可以获得 8bpp 位图的信息...

但我的问题是,我不知道如何将此信息放入 1bpp 位图中

在评论建议后尝试这个:

(还需要为outputImage分配内存)

0 投票
1 回答
635 浏览

c# - 将绘制的图像保存为 MonoChrome

大家好,我有一张我使用 graphics.drawline 绘制的图像

无论如何

这很好用我正在尝试使此图像单色我尝试了许多不同的解决方案,例如

在 C# 中将 32 位位图另存为 1 位 .bmp 文件

同样,只要我引用 imagetype.bmp 它就会变黑任何理想或建议,我像这样运行上面的链接

但是生成的图片总是纯黑色的,有人可以帮我把它保存为单色图像吗

0 投票
1 回答
698 浏览

php - 用于单色位图的 PHP imagebmp

如何为单色 BMP 实现 imagebmp() 函数?我发现了许多 24 位位图的实现,但没有发现 1 位位图。

0 投票
1 回答
4820 浏览

r - R 光栅包 plot() 产生单色图像

我想使用绘图功能获得单色图像。但它继续产生彩色图像。我什至有使用绘图功能绘制的单色图像,并且我得到了一些奇怪的绿色和橙色。如何使绘图功能提供单色图像?我试图阅读有关 getValues 函数的信息,但发现它很难理解,因为我不是来自图像分析背景。似乎 getBlocks() 函数返回单色图像。但是有没有办法只使用绘图功能来获得单色图像?

0 投票
1 回答
1229 浏览

algorithm - 单色位图 (1 bbp) 填充和额外的 0xF0 字节

我正在使用单色位图图像,每像素 1 位。

当我使用十六进制编辑器检查文件时,我注意到每一行都以以下十六进制序列结尾:f0 00 00 00.

在稍微研究了这个问题后,我得出结论,最后三个字节00 00 00对应于行填充。

问题一:

我想知道在 1 bbp BMP 图像的情况下确定填充字节数的以下算法是否正确:

n_width是 BMP 图像的像素宽度。

例如,如果 n_width = 100 px,则 n_nbPaddingBytes = 3。

问题2:

除了填充(00 00 00)之外,我F0在每一行的三个字节填充之前都有这个字节。它会在图像右侧产生一条 4 像素的黑色垂直线。

注意 1:我在 Zebra 打印机上打印之前对图像进行处理(我正在垂直翻转图像并恢复颜色:基本上黑色像素变成白色像素,反之亦然)。

注意2:当我用Paint打开原始BMP图像时,它的右侧没有这样的黑色垂直线。

这个字节 0xF0 出现在每一行的末尾有什么原因吗?

感谢您的帮助。此致。

0 投票
1 回答
662 浏览

c++ - 将 QGraphicsScene 打印/保存为单色图像质量很差

我想以QGraphicsSceneMono 格式打印/保存。我让场景只包含一个颜色对象(在其中一个窗口中,它实际上是黑白的)。

黑白图像的质量很差!

我预计红色像素会变成黑色,但只有其中一些像素会变黑。对于第四个窗格,我希望所有黑色像素在单声道输出中都被放置为黑色,但同样,只有其中一些像素如此。

在此处输入图像描述

有没有办法在物体有颜色的地方用黑色像素制作黑白图像,在其他地方用白色?

我可以轻松更改生成颜色部分的代码,以输出黑色而不是原始颜色,但这似乎不能解决问题(第 4 个面板有黑色,但单色图像不包含所有像素)。

由于内存成本,我需要单声道...

如何使场景正确输出到 QImage ?

更新1:我什至尝试抖动彩色图像 - 结果很可怕(在应该更暗的区域太亮,奇怪的伪影,另外我添加了一个耗时的额外步骤,最糟糕的是,添加了一个非常大的 rgb图像...这正是我要避免的,由于资源非常有限,我需要单色图像)

在此处输入图像描述

使用内置的 qt 抖动方法,我看到渲染到单色图像使用Qt::ThresholdDither.

如果至少我可以在一个步骤中对渲染应用不同的抖动,而不必先构建彩色图像然后抖动到新的单色图像,那将是一个巨大的改进。记忆和时间都很重要。

虽然也许我真正需要的是一种快速的方法来遍历每个像素并将其设置为 1 如果其强度高于 .5 则设置为 0 如果低于?尽管如此,这仍然意味着在创建 rgb32 图像之后需要一个单独的步骤......并且由于某种原因,“手动”操作总是比内置方法慢。

更新 2:本例中绘制的项目是一个带有渐变画笔的矩形。我还将颜色分成 4 个 QGraphicsScene:如果 color == color1 然后 color2,3,4 = Qt::white 等等。

0 投票
0 回答
834 浏览

android - 将 png 转换为单色 bmp - android

我正在开发一个应用程序,在其中我在画布上绘制黑白图并将其保存为 png 格式

现在我买了一台需要以单色 bmp 格式绘图的 pos 打印机,如何将画布保存为 sd 卡上的单色 bmp 或同时读取读取的 png 文件作为单色 bmp?

这是我在 SD 卡上保存画布的代码

并读取文件

0 投票
1 回答
200 浏览

android - 如何在 Android 中以编程方式将位图从 24 转换为 1bpp 以减小位图大小

我需要在 Android 的 OCR 应用程序中减小位图大小,将其从 24bpp 转换为 1bpp-单色

我发现这个非常好的软件可以将位图转换为 1bpp-monochrome ( https://github.com/acdevs/1bpp-monochrome-android )。它转换为 1bpp-monochrome,但最终文件的大小没有减小。

关于如何减少将位图转换为 1bpp-monochrome 的位图文件大小的任何建议?

预先感谢您的帮助。

0 投票
0 回答
277 浏览

c# - 将 Monochrome 1bpp TIFF 转换为字节数组

我在 Photoshop 中创建了一个 1bpp 图像,我正在尝试将字节读入字节数组。稍后我会将这些单色字节存储在字体描述符下以制作位图字体。

所以我得到这样的图像:

我稍后将图像写入字节数组,如下所示:

当我将文件写入字节数组时,它不再是单色 1bpp,而是我认为它是 24bpp 或 32bpp(不确定是哪个,但我确定它不是 1bpp)。知道如何将字节写为 1bpp 而不是 8/16/24/32?这是用于激光喷射打印机的,它们在打印光栅数据时只能读取 1bpp 字节流。希望这很清楚。