- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要一个算法来将 HCL 颜色转换为 RGB 并将 RGB 反向转换为 HCL,同时记住这些颜色空间具有不同的色域(我需要将 HCL 颜色限制为可以在 RGB 颜色空间中再现的颜色)。这个算法是什么(该算法旨在在原生仅支持 RGB 颜色的 Wolfram Mathematica 中实现)?我没有使用色彩空间的经验。
附言一些关于HCL颜色的文章:
更新:正如 Jonathan Jansson 指出的那样, 在上面两篇文章中不同的颜色空间被描述为名称“HCL”:“第二篇文章使用了 LCh(uv) 与 Lu 相同v* 但在极坐标中描述,其中 h(uv) 是 u* 和 v* 坐标的角度,C* 是该矢量的大小”。所以实际上我需要一种算法来将 RGB 转换为 Luv* 并向后转换。
最佳答案
我也刚刚学习了 HCL 色彩空间。不过,您问题中两篇文章中使用的色彩空间似乎是不同的色彩空间。
第二篇文章使用 L*C*h(uv),它与 L*u*v* 相同,但在极坐标中描述,其中 h(uv) 是 u* 和 v* 坐标的角度,C*是该向量的大小。
第一篇文章中的 LCH 颜色空间似乎描述了另一种颜色空间,而不是使用更多算法转换的颜色空间。这里还有第一篇论文的另一个版本:http://isjd.pdii.lipi.go.id/admin/jurnal/14209102121.pdf
如果您打算使用 CIE L*u*v*,您需要先将 sRGB 转换为 CIE XYZ,然后再转换为 CIE L*u*v*。在大多数情况下,RGB 实际上指的是 sRGB,因此无需从 RGB 转换为 sRGB。
Good article about how conversion to XYZ works
但我无法回答您有关如何将颜色限制在 sRGB 空间的问题。您可以在转换后丢弃 0 到 1 范围之外的 RGB 颜色。仅仅限制颜色会产生非常奇怪的结果。尝试转到转换器并输入颜色 RGB 0 0 255 并转换为 L*a*b*(类似于 L*u*v*),然后将 L* 增加到 70 并将其转换回来,结果肯定是不再是蓝色了。
编辑:更正了 URL编辑:将另一个答案合并到这个答案中
关于algorithm - HCL 颜色到 RGB 和反向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530627/
我有三个输入:a、b 和 c。如果我的输出为 1,则有奇数个输入为 1。否则为 0。 到目前为止我已经尝试过(a && b && c) || (!a && !b && !c), (a && b &&
我需要一个算法来将 HCL 颜色转换为 RGB 并将 RGB 反向转换为 HCL,同时记住这些颜色空间具有不同的色域(我需要将 HCL 颜色限制为可以在 RGB 颜色空间中再现的颜色)。这个算法是什么
在 HSL 颜色空间中更改色调、饱和度和亮度非常容易。参见 this javascript implementation for example . 生成配色方案也很容易,例如:类似色、单色、三色、四
我的目标是解析一个 HCL 配置(Terraform Configuration),然后将收集到的有关变量、输出、资源 block 和数据 block 的数据写入 Markdown 文件。 但是,一旦
这是一个 hashicorp 保管库策略,以便它允许访问保管库中的任何资源和路径吗?出于明显的安全原因,我希望启用管理策略而不向任何人授予 root token 访问权限。 path "*" { ca
我已经安装了 HashiCorp Terraform/HCL 语言支持 来支持 terraform 编码,但它是一样的。 确保插件已启用: 我配置错了什么?我得到了 IntelliJ Idea Ult
尝试使用 viper Unmarshal 一个 hcl 配置文件到一个结构,返回这个错误:1 error(s ) 解码:\n\n* 'NATS' 需要一张 map ,得到了 'slice'。缺少什么?
我创建了这个文件夹结构: . ├── main.tf └── terragrunt.hcl # FILE: terragrunt.hcl include { path = find_in_pare
我拥有全面的、现有的、可用的 Azure 资源,我需要这些资源来创建 terraform HCL 脚本,并将它们部署到许多其他环境中。 我喜欢避免手动编码所有资源。 有没有办法根据Azure资源组中的
我拥有全面的、现有的、可用的 Azure 资源,我需要这些资源来创建 terraform HCL 脚本,并将它们部署到许多其他环境中。 我喜欢避免手动编码所有资源。 有没有办法根据Azure资源组中的
我正在对现有的 Notes 应用程序进行一些小的更改。当我在前段时间(>10 年)开发原始应用程序时,我最初构建了一个主模板并为主模板分配了一个版本。环境中的标准发布实践是在开发环境中构建,从开发中制
我正在对现有的 Notes 应用程序进行一些小的更改。当我在前段时间(>10 年)开发原始应用程序时,我最初构建了一个主模板并为主模板分配了一个版本。环境中的标准发布实践是在开发环境中构建,从开发中制
我目前正在用 Java 开发一个基于 Vaadin 的程序,该程序从 Domino 数据库中提取文档并将它们写入 MongoDB 集合。该程序运行完美,但有一个小缺陷: 目前,除了向进程发送“KILL
我安装了 TinyMCE editor在 vanilla Connections 5 CR6 安装上,现在想添加插件。 HCL 告诉我们,我们拥有与 Connections 一起获得许可的 TinyM
如何在“资源”部分转义包含 ${aws:username} 的 HCL 字符串? 我目前使用 Terraform 0.9.9 版通过以下方式在 main.tf 文件中创建 AWS 策略: resour
我是一名优秀的程序员,十分优秀!