algorithm - 计算 RGB 值
问题描述
我目前正在编写一个颜色选择器并尝试创建一个函数,该函数采用 0 到 255 (RGB) 之间的 3 个整数。
如果您查看上面链接的图像,您可以看到中心有一个彩虹渐变。那里的所有 RGB 值至少包含一个 0 和一个 255 的整数。另一个可以是 0 到 255 之间的任何值。然后在图像的左侧有一个正方形,其中包含所有“子-这个“彩虹色”的颜色”。
该函数应该采用这种子颜色的 RGB 值(例如 R = 112,G = 158,B = 73,这是一种绿色)并给我彩虹色(R = 116,G = 255, B = 0 注意 255, 0 和两者之间的值)。
我真的试图开发一种算法来为我解决这个问题,但我只是对彩虹色进行了非常粗略的估计。我知道不可能,例如,通过 R = 19、G = 19、B = 18 获得彩虹色,因为有很多彩虹色包含这些值。但是应该有一种方法来解决这个问题。
解决方案
该渐变对应于 HSL/HSV颜色模型hue
中的颜色属性或值。chroma
因此,要构建所需的图片,您可以制作色调在 0..360 和最大饱和度范围内变化的渐变条。
当用户选择色调值时,使用相同色调但所有可能的值填充一个saturation
正方形luminance
。
链接页面还提供了 HSL-RGB(和反向)转换的公式。请注意,某些图形库和框架已经包含用于此类转换的函数。
推荐阅读
- python-3.x - 错误:无法从“pdfminer.pdfparser”导入名称“PDFDocument”
- bixby - Bixby:本周末,下周末返回相同的值
- java - 使用 JDBC 处理可能的死锁的最佳方法
- php - 如何在 laravel 中发送电子邮件?
- javascript - 如何在 Twitter API 请求中使用承载代码?
- sql - ID、日期和最近 x 天的最大值
- php - App\Models\User::isNot(App\Models\User $user) 的声明
- r - 计算折线之间的最大距离
- docker - 如何并行加载所有保存的 docker 图像
- python - 火花工作者中的pyspark缓存值