java - 颜色减法 RBG 或 CIElab

标签 java android algorithm colors rgb

我在这里阅读了几个主题,根据答案没有确切的解决方案。无论如何,假设我们有 RGB 颜色选择器 (0-255,0-255,0-255) 和两种颜色,一种是原始的未混合颜色,另一种是混合颜色,那么我如何精确减去以找到添加的颜色?它真的像

z - y = x ?

有研究公式吗?

另一个问题是,如果应用 CIElab 变换来获得色调饱和度亮度,那么我该如何应用它们来减去颜色?

最佳答案

你是说加法混色?

在这种情况下,只添加了光。所以,它只是光强度的加减,所以 RGB 很好。但是你需要线性色彩空间。因此,您需要“取消应用”gamma,添加或减去,然后再次应用 gamma。

参见 https://en.wikipedia.org/wiki/SRGB#Specification_of_the_transformation对于应用和取消应用 Gamma 的公式:C 是 channel (R、G、B、每个),C_linear 是线性空间(您可以在其中添加和减去强度) C_srgb 是我们在计算机上使用的 channel 值。注意:您应该除以 255 并乘以 255,以将值从 0 归一化为 1。

对于正常的颜色混合(油漆、油墨、染料等),这很复杂,但在这种情况下,CIExyz 是首选:事实上,在这样的空间中,混合的结果介于两者之间原始色度。不幸的是,该模型不会告诉您结果将在这条线内的哪个位置。通常需要有关每种颜色的更多数据(通常不是 RGB 三元组,而是大约 60 项的 vector [因此每 5nm 一个数据])

关于java - 颜色减法 RBG 或 CIElab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51048782/

相关文章:

java - 无法从 Android 中的远程服务器下载 .apk 文件

Php 按日期排序多个 xmlDoc

algorithm - 我必须找到包含数字 k 或可被 k 整除的第 n 个数字。 (2 <= k <= 9)

java - 自定义 BlockJUnit4ClassRunner,运行测试套件设置次数

Java获取工具提示信息

java - JPA AccessType.Property 无法从嵌套类中检索值

java - maven:无法识别的标签: 'testResources'

Android:ViewBinding 的 ScrollView 内没有可用的 View ID。如何访问?

android - Flutter 中的 Widget 是什么?

c++ - std::sort 在 C++ 中?