问题标签 [color-space]

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 回答
2955 浏览

python-imaging-library - 在 PIL 中的 CMYK 到 RGB 转换期间保留颜色

我正在使用 PIL 处理上传的图像。不幸的是,我在从 CMYK 到 RGB 的颜色转换时遇到问题,因为生成的图像色调和对比度会发生变化。

我怀疑它只是在做直接数字转换。PIL 或在其之上构建的任何东西是否具有 Adob​​ian 虚拟证明消耗嵌入式配置文件、转换为目标、保留可用于转换的数字工具?

在我所有健康的无知和缺乏经验中,这种方式向我扑来,让我陷入了困境。在这一点上,我真的很想在不涉及任何复杂的色彩空间、转换和必要的数学的情况下完成这项工作。

虽然我以前从未使用过它,但如果有人有经验,它可以以优雅的方式执行它,我也愿意使用 ImageMagick 进行此处理步骤。

0 投票
2 回答
4836 浏览

iphone - iPhone glTexImage2D 和 glReadPixels 上的 BGRA

查看文档,我应该能够将 BGRA 用于纹理的内部格式。我正在为纹理提供 BGRA 数据(将 GL_RGBA8_OES 用于 glRenderbufferStorage,因为似乎不允许使用 BGRA)。但是,以下方法不起作用:

虽然这给了我一个黑框:

这确实有效,但是蓝色/红色是反转的(我将 BGRA 数据提供给纹理):

...为什么我不能始终使用 BGRA?我确实注意到 glRenderbufferStorage 似乎不接受任何 BGRA 格式......我真的很困惑。BGRA 是我的数据唯一合适的格式,因为它来自 iphone 的相机。

0 投票
2 回答
3333 浏览

c# - 根据可见光谱中的位置对 System.Media.Colors 进行排序

根据其在可见光谱中的位置(红色到蓝色或蓝色到红色无关紧要)对 System.Media.Colors 中的颜色进行排序的最快/最简单的方法是什么?

编辑:

这是排序的结果(色调->饱和度->亮度):

在此处输入图像描述

这在技术上可能是正确的,但在视觉上它仍然不是。有人可以阐明问题所在吗?

0 投票
2 回答
1303 浏览

colors - 如何从两个 RGB 值中找到一种颜色的 RGBA 值?

我有一种预感,这以前已经做过,但我对此完全是外行,不知道如何开始提出正确的问题。所以我将描述我正在尝试做的事情......

我有一个未知的 ARGB 颜色。我只知道它的绝对 RGB 值显示在两种已知的不透明背景颜色上,例如黑色 0x000000 和白色 0xFFFFFF。所以,继续这个例子,如果我知道 ARGB 颜色在 0x000000 上显示时等效于 RGB 0x000080,并且我知道相同的 ARGB 颜色在 0xFFFFFF 上显示时等效于 RGB 0x7F7FFF,有没有办法计算原始 ARGB 颜色是?

或者这甚至可能吗?

0 投票
1 回答
677 浏览

java - 在 jpeg 中保存色彩空间

我有一个 servlet 来转换和缓存较小版本的照片。它是使用 java.awt.image + javax.imageio 和第三方重采样过滤器实现的。原件均使用 sRGB 颜色配置文件上传。当我重新采样它们并再次保存它们时,它们仍然在 sRGB 中,但这并没有记录在保存的文件中。

如何确保此信息保存在文件中?

如果您想知道它会有所不同,那么在我的屏幕(Safari + OSX + Calibrated 屏幕)上,没有配置文件的图像比具有正确 sRGB 配置文件的图像更加饱和。此外,我确定这是缺少配置文件信息,而不是重采样算法。

0 投票
1 回答
3383 浏览

c# - .NET 中的 ARGB 到 YUV && 颜色空间

我注意到Colorstruct fromSystem.Drawing代表ARGB颜色空间中的颜色。所以有几个问题:

  • 如何在 C# 中转换 ARGB 和 YUV 之间的图像?我找到了描述 RGB 到 YUV 转换的公式。那么我应该如何处理 alpha 通道呢?
  • 是否有支持不同色彩空间的免费/试用库?或者我如何以最好的方式自己实现它?
  • 如何将“位图”表示为具有迭代能力的二维数组?继承是实现这一目标的唯一方法吗?

就这些了)

谢谢!

0 投票
5 回答
5193 浏览

algorithm - 寻找其他两种颜色的算法 - 在绘制颜色的颜色空间中

当混合蓝色和黄色油漆时,结果是某种绿色。

我有两种 rgb 颜色:

蓝色 = (0, 0, 255)

黄色 = (255, 255, 0)

找到混合两种颜色的 rgb 颜色的算法是什么,就像它们在使用油漆时出现的那样?算法产生的颜色不必非常精确。对于上面的例子,它只需要看起来像某种绿色。

提前致谢。

编辑:根据 LaC 的回答,这个用 Go 编写的函数对我有用。

编辑#2 Allthought这设法混合青色和黄色,蓝色和黄色之间的混合变成黑色,这似乎不正确。我仍在寻找一种可行的算法。

编辑#3这是一个使用 HLS 颜色空间的完整 Go 示例:http: //go.pastie.org/1976031。谢谢马克赎金。

编辑#4似乎更好的颜色混合的前进方向是使用 Kubelka-Munk 方程

0 投票
1 回答
864 浏览

colors - sRGB->CIEXYZ->discard 亮度的结果是否可以转换回 sRGB?

我正在为我的小马探测器写阴影去除。在我将 PNG 图像从 sRGB 转换为 CIE XYZ后,我按照说明删除了亮度:


当我尝试将图像转换回 sRGB 进行显示时,我得到的 RGB 值超出了sRGB 色域(我得到的值大于 255)。这是正常的,还是我应该继续寻找错误?注意:在不修改的情况下转换为 XYZ 并返回不会产生故障。

插图(左上:原始,左下:红色和蓝色色调的字节值包装):

为了完整性:右上:颜色比率,右下:转换为 HSV 并均衡值。

0 投票
5 回答
8677 浏览

python - 将 RGB 三元组列表排序为频谱

我有一个 RGB 三元组列表,我想以这样的方式绘制它们,使它们形成类似光谱的东西。

我已将它们转换为人们似乎推荐的 HSV。

然而,结果看起来不太像一个漂亮的彩虹-y光谱。我怀疑我需要转换为不同的色彩空间或以不同的方式处理 HSL 三元组。

这看起来不像光谱

有谁知道我需要做什么才能使这些数据看起来大致像彩虹?

更新:

我在玩希尔伯特曲线并重新审视了这个问题。通过沿希尔伯特曲线的位置对 RGB 值(两个图像中的相同颜色)进行排序会产生一个有趣的(如果仍然不完全令人满意)的结果:

RGB 值沿希尔伯特曲线排序。

0 投票
3 回答
5225 浏览

java - 我可以使用 libjpeg 读取带有 alpha 通道的 JPEG 吗?

关于带有 alpha 通道的 JPEG 是否有效似乎存在一些争论。我一直认为正确的答案是在 JPEG FAQ中,基本上是“否”。(这在 Stack Overflow 上的另一个问题中得到了重申。)

但是,Sun 的 ImageIO 库中的 Java JPEGImageWriter 将愉快地使用 alpha 通道写入和读取灰度和 RGB 图像,即使到目前为止我尝试过的 Linux 上几乎没有应用程序可以正确加载此类 JPEG。这在过去被报告为一个错误,但 Sun 的回应是这些文件是有效的:

这不是 Image I/O 错误,而是提交者提到的其他应用程序的缺陷。IIO JPEGImageWriter 能够使用包含 alpha 通道的颜色模型编写图像(在 IJG 原生源代码中称为“NIFTY”颜色空间,例如 RGBA、YCbCrA 等),但许多应用程序并不知道这些色彩空间。因此,即使 IIO JPEG 编写器编写的这些图像符合 JPEG 规范(对各种颜色空间的可能性视而不见),某些应用程序可能无法识别包含 alpha 通道的颜色空间,并可能引发错误或呈现损坏的图片,正如提交者描述的那样。

希望与这些其他不知道 alpha 的应用程序保持兼容性的开发人员应该编写不包含 alpha 通道的图像(例如 TYPE_INT_RGB)。想要以 JPEG 格式写入/读取包含 Alpha 通道的图像的开发人员可以使用 Image I/O API 来实现,但需要注意许多本地应用程序不太符合 YCbCrA 和 RGBA格式。

有关详细信息,请参阅图像 I/O JPEG 元数据格式规范和使用说明:http: //java.sun.com/j2se/1.4.1/docs/api/javax/imageio/metadata/doc-files/jpeg_metadata。 html

关闭为“不是错误”。xxxxx@xxxxx 2003-03-24

我正在使用创建此类文件的 Java 应用程序,并希望编写一些 C 代码以尽可能快地加载这些文件。(本质上问题是 Java ImageIO 库在解压缩这些文件时非常慢,我们希望通过 JNI 用本机代码替换加载器以改进这一点 - 目前这是一个性能瓶颈。)

这里有一些示例文件 - 向任何有恐惧症的人道歉

在这里,您可以看到尝试使用我相信使用的各种 Linux 软件查看灰度+alpha 和 RGB+alpha 图像的结果libjpeg

带有各种程序的 alpha 通道视图的灰度图像 http://mythic-beasts.com/~mark/all-alpha-bridges.png

具有各种程序的 Alpha 通道视图的 RGB 图像
(来源:mythic-beasts.com 上的标记

所以看起来色彩空间在每种情况下都被误解了。中唯一允许的值jpeglib.h是:

...这看起来并不乐观。

example.c如果我使用from的略微修改版本加载这些图像,则读取标题后每个图像的和libjpeg值如下:cinfo.jpeg_color_spacecinfo.out_color_space

所以,我的问题是:

  • 可以使用 libjpeg 正确读取这些文件吗?
  • 如果没有,我可以使用替代 C 库来应对它们吗?

显然,对于更一般的问题,至少还有两种其他解决方案:

  1. 更改软件以输出普通 JPEG + 表示 Alpha 通道的 PNG 文件
  2. 以某种方式提高 Sun 的 ImageIO 的性能

...但第一个将涉及大量代码更改,并且不清楚如何处理后者。无论如何,我认为如何使用libjpeg来加载此类文件的问题可能是更普遍的兴趣之一。

任何建议将不胜感激。