问题标签 [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 投票
7 回答
24279 浏览

colors - RGB 到单色转换

如何将像素的 RGB 值转换为单个单色值?

0 投票
2 回答
4028 浏览

c# - 将图像转换为单色字节数组

我正在编写一个库来将 C# 与 EPL2 打印机语言接口。规范文档说,我想尝试实现的一项功能是打印图像

p1 = 图形宽度 图形宽度(以字节为单位)。八 (8) 个点 = 一 (1) 个字节的数据。

p2 = 图形长度以点(或打印线)为单位的图形长度

数据 = 没有图形文件格式的原始二进制数据。数据必须以字节为单位。以字节为单位的宽度 (p1) 乘以图形数据总量的打印行数 (p2)。打印机根据此公式自动计算数据块的确切大小。

我计划我的源图像是一个每像素 1 位的 bmp 文件,已经缩放到大小。我只是不知道如何将它从该格式转换为字节 [] 以便我发送到打印机。我试过ImageConverter.ConvertTo(Object, Type)它成功,但它输出的数组大小不正确,并且文档非常缺乏关于如何格式化输出。

我当前的测试代码。

非常感谢任何帮助,即使它的方向完全不同。

0 投票
2 回答
828 浏览

image - 单色位图

应该是一件容易的事。

我正在研究 Scala,试图处理长序列的二进制数据。那是一长串 0 和 1 的列表。存储/访问此类数据的“最佳”方式是什么。

这里的重点是内存优化,所以我想避免使用整个字节来存储布尔值。访问也很重要,所以我想避免将它们放入字节然后放入数组中。

位图是个好主意吗?scala中有这样的课程吗?

如果没有,最好使用 ByteArray 吗?你将如何实现这一点?

还有其他想法吗?

谢谢,

0 投票
1 回答
1303 浏览

c++ - Can't Create Monochrome Bitmap from HBITMAP got by GDI+ Bitmap::GetHBITMAP

我无法使用 SetBkColor() > BitBlt[SRCCOPY] 为 24BPP 彩色图像创建单色蒙版。面具最终完全变黑。只有当我使用 LoadImage() 来获取 HBITMAP 时,整个事情才有效。

其他有相同问题的人建议使用 Graphics::GetHDC 并使用此 DC 执行所需的解决方法。但是为什么它不能正常工作。

即使这种解决方法也能奏效。请帮忙 :(

0 投票
2 回答
1052 浏览

c# - 制作全屏单色等全屏效果

有谁知道如何在 c# 或任何编程语言中将效果应用于整个屏幕。我最感兴趣的是使屏幕单色(特别是绿白而不是黑白色)。

我知道跨显卡解决方案是可能的,因为我找到了一个可以做到这一点的程序: http ://www.freedomscientific.com/products/lv/magic-bl-product-page.asp

任何人都知道如何完成这个或在哪里看?

谢谢 !!

0 投票
2 回答
2147 浏览

wpf - 如何在 WPF 中以彩色渲染单色位图?

回到 Win32 时代,如果我有一个单色位图,它只是一个位图掩码,我可以将该位图渲染到 DeviceContext 上。会发生的情况是每个像素呈现为透明的“0”,以及呈现为“1”的每个像素以当前选定的前景色呈现。这非常方便。

但是,经过几周的搜索,我在 WPF 中没有看到任何类似的东西。

现在我正要推出我自己的 MonochromeBitmapImage 类,但我想如果有人知道另一种方法来做到这一点,那就是你们所有人,SO 用户,所以我的问题是......如何在 WPF 中渲染一个单色位图,一个值是特定颜色,另一个值是透明的?

0 投票
2 回答
2919 浏览

android - 单色黑白位图

我正在使用 Android 将从相机捕获的彩色位图转换为黑白单色图像(没有灰色!)。

我有几种灰度转换方法,但我无法将图像转换为黑白格式。

有没有将位图转换成这种格式的方法?

0 投票
1 回答
1713 浏览

pdf - 如何通过 iText 将黑白图像作为 JBIG2DECODE 流添加到 PDF 中

我正在开发一个实用程序,用较小的单色(2 色黑白)版本替换 PDF 中的图像,以缩小扫描的 PDF。下面的程序(这就是全部)当前将所有图像导出为大的 .png 文件到in目录,然后用户获取这些文件,进行任何必要的图像处理,并复制结果,名称相同,但现在使用.jb2扩展名,到out目录。再次运行此程序应将修改后的文件复制回流中,替换原始图像。

不用说,它不起作用。流标头都是正确的,但我认为流没有被正确压缩以符合JBIG2DEOCDE格式,因此没有任何修改后的图像出现在阅读器中。由于我要替换现有的流,我不能使用document.add(Image),所以我必须手动完成所有这些流的东西。我可能错过了执行此操作的 iText 工具,但是我应该如何将这些图像放入流中?

格式的使用.jb2由 iText 规定,但我可以轻松使用更常见的格式,例如.gif. 重要的部分是我希望将具有黑白 2 调色板的图像放置在 PDF 中,并且具有适合单色文本图像的压缩格式(我更喜欢 JBIG2,但 CCITT 3 或 4 或 RLE 将适用于我也是)。目标是最大程度地节省空间;我没有处理时间要求。

或者,如果有人知道任何好的实用程序来做我想做的事情,那也一样。我想用替代品替换 PDF 文件中的所有现有图像(它们需要可供外部应用程序处理),并且我需要控制替代品的压缩方式。它还必须以适合批处理模式处理的方式完成,因为我通常处理具有数百页和每页一张图像的 PDF。我正在尝试减小 PDF 的大小,但我需要完全控制压缩,并且我想自己进行所有有损压缩。Acrobat 的缩小 PDF 大小功能总是会破坏我的图像。

0 投票
1 回答
481 浏览

linux - 用于在 Linux 中读取/写入双色调 (1bpp) 图像的库?

我正在尝试编写一个在 Linux 下运行的 C 程序,其中包括读取和写入图像文件。我要处理的所有图像文件都是 TIFF 格式的双色调图像,每像素 1 位。我对这类图像的支持不佳感到非常惊讶。

我尝试过 Imlib,但尽管它据称支持读取双色调文件,但显然无法访问真实的图像数据——它首先将数据转换为 RGB,这很荒谬,尤其是在我正在使用的分辨率下。

我尝试过 FreeImage,尽管它的 Windowsy 编码标准不协调,但它的 API 设计似乎比 Imlib 更加理智。不幸的是,它实际上似乎不适用于黑白图像。我得到的数据都是零,即使在复制他们的示例代码时也是如此。

还有其他可能吗?我只想要一些可以读写双色调 TIFF 的东西,这样我就不必处理奇怪的标记格式、压缩等。

0 投票
4 回答
34530 浏览

android - Android:将位图转换为单色位图(每像素 1 位)

我想将位图打印到移动蓝牙打印机 (Bixolon SPP-R200) - SDK 不提供打印内存图像的直接方法。所以我想像这样转换位图:

到单色位图。我正在使用画布在上面给定的位图上绘制黑色文本,效果很好。但是,当我将上述位图转换为 ByteArray 时,打印机似乎无法处理这些字节。我怀疑我需要一个每个像素一个位的数组(一个像素可以是白色 = 1 或黑色 = 0)。

由于似乎没有方便的开箱即用的方式来做到这一点,我的一个想法是使用:

获取像素。我想,我必须按如下方式使用它:

但是 - 我不确定一些事情:

  • 在 getPixels - 简单地将宽度作为“Stride”参数传递是否有意义?
  • 我想我必须评估每个像素的颜色信息并将其切换为黑色或白色(我会将此值写入一个新的目标字节数组中,最终将其传递给打印机)?
  • 如何最好地评估每个像素的颜色信息以确定它应该是黑色还是白色?(渲染的位图是白色背景上的黑色疼痛)

这种方法是否有意义?有没有更简单的方法?仅使位图黑白是不够的,主要问题是将每个像素的颜色信息减少到一位。

更新

正如 Reuben 所建议的,我将首先将位图转换为单色位图。然后我将遍历每个像素:

现在 Reuben 建议“读取每个 32 位像素的最低字节”——这与我关于如何评估像素颜色的问题有关。我在这方面的最后一个问题:我是否只需这样做就可以获得最低字节: