问题标签 [hsl]

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 投票
1 回答
1815 浏览

android - 在 Android 中有效地更改位图颜色/色调

我正在使用以下方法来更改位图的色调:

它完美地工作并保持位图的亮度。但是,当更改位图大小 800*480 或更高的色调时,此方法非常慢。如何在不损失太多图像质量的情况下对其进行优化?

0 投票
1 回答
7850 浏览

colors - 如何通过输入距离从所选颜色计算色相、饱和度和亮度值

给定一个起始十六进制代码,我想知道以升序和降序计算亮度线性值的数学。色相和饱和度也一样。

我很难准确地描述我想要的东西,幸运的是我发现这个页面使用了我需要的确切算法:

http://www.workwithcolor.com/hsl-color-schemer-01.htm

如果您检查该页面,您会发现最后 3 个重做按钮显示为:色相线性、饱和度线性、亮度线性。每个都为您提供与原始十六进制代码相对应的升序十六进制代码列表。

例如,对于亮度,他们给出了以下列表(来自颜色 FFCE2E): FFCE2E FFDA61 FFE694 FFF2C7 FFFEFA

我需要公式,拜托。

提前致谢。

0 投票
0 回答
1637 浏览

ios - 如何为 rgb 到 hsl 转换创建 lut

我需要使用着色器进行 rgb 到 hsl 的转换,反之亦然。我尝试以编程方式完成所有操作,但它太慢了……所以我阅读了有关转换的查找表 LUT,但我不知道如何创建它以及它必须包含的内容...我还需要知道如何将 lut 大小减小到所需的最小值,否则它可能对于 iphone 内存来说太大了。要处理的帧,所以要处理的纹理是 32 位 rgba --> 所以 rgb 是 24 位 --> 每像素 8 位。

我非常感谢任何帮助,但专注于创建 lut 并且只有在对如何使用它进行了很好的解释之后......因为我的问题是如何创建它。

这是着色器代码:

顶点着色器

片段着色器

解决了!!!

0 投票
2 回答
1803 浏览

java - 按颜色排序列表(Java)

我正在寻找按“颜色距离”对列表进行排序。我正在使用以下函数来计算两种颜色之间的距离:

因此,如您所见,我使用 RGB 值来计算两种颜色之间的“距离”。这个函数非常适合我需要计算的东西,因为我不需要精确的精度。问题是,我不仅需要知道距离,还需要知道 c1 是在 c2 之前还是之后,以便我可以根据颜色距离创建一个排序列表。

如果还不够清楚,一个例子可能会有所帮助。纯黑色和纯白色之间的颜色距离将在 256 附近。在当前状态下,此函数将为 colorDistance(black, white) 和 colorDistance(white, black) 返回相同的 ~256。我怎样才能使 colorDistance(black, white) 返回 256 而 colorDistance(white, black) 返回 -256?

如果可以的话,我不反对使用 HSV/HSL,但我对 RGB 更加熟悉。如果可以提供一个函数来计算 HSV/HSL 的正或负颜色距离,那就把它带上吧!

或者更好的是,另一个简单的函数将采用两种颜色并简单地决定 c1 是在 c2 之前还是之后!

0 投票
1 回答
526 浏览

algorithm - HSL 转换是否准确?

我还没有找到可以转换rgb(0, 96, 255)为 HSL 并返回的算法/实现,而最终值不会略有不同(rgb(0, 98, 255))。这意味着每个人的算法都被破坏了(包括 Wolfram|Alpha)——或者 HSL 不能代表每种 RGB 颜色。

哪个是对的?

0 投票
1 回答
1452 浏览

php - RGB 到 HSL 函数中的饱和度计算不正确

有人知道从 RGB 颜色中获取饱和度的正确公式吗?

我已经有一个功能可以做到这一点。我已经尝试过将它们发布在互联网上的大量内容,但只有这个似乎对我有用(第一次),除了饱和度偶尔会略微超出。

rgb(204,153,51)应该相等hsl(40,60,50),而不是我有hsl(40,75,50)。正如你所看到的,我的色调和亮度是正确的,事实上,饱和度也大多是正确的,但有时不是,如果可以的话,我需要纠正它。

这是我到目前为止所构建的,因此我可以检查所有颜色值对于我的图像是否正确,然后再将它们存储在我的搜索引擎的数据库中。

在此处输入图像描述

这是有问题的函数,我认为饱和度计算不正确:

关于为什么这不能 100% 起作用,我的一个线索是我首先将 HEX 颜色转换为 RGB,然后将 RGB 转换为 HSL。由于网络安全颜色,这是否会成为问题,或者您是否可以在函数中发现可能导致此问题的其他任何东西?或者这就是它的样子?

更新 1

尝试其他图像,它似乎主要是“米色”(近似)颜色,饱和度略有下降。使用颜色选择器,如果我将饱和度条移到它应该在的位置并没有太大的差异,所以我的搜索功能可能不会对此有太多了解。不过,在我对 500,000 张照片运行它之前解决它会很好。

修复

感谢下面的OmnipotentEntity,他注意到我的功能缺失了一部分。我变了:

到:

现在产生 100% 正确的结果。

友情提示

如果有人想要生成此颜色表的代码,请询问。

0 投票
1 回答
553 浏览

php - 为什么这个 HSL 到 RGB 转换功能不起作用?

好的,我已经编写了一个应该将 HSL 颜色值转换为 RGB 的函数。我根据这个脚本用 PHP 重写了它:http ://www.easyrgb.com/index.php?X=MATH&H=19#text19

这就是我所拥有的:

此脚本的输出:

正确的输出是R: 50, G:199, B:255。我从easyrgb.com. 我只是不知道为什么它不起作用。任何帮助都是极好的。谢谢。

0 投票
1 回答
263 浏览

language-agnostic - 在 RGB 和 HSL/HSV 之间转换:如何处理溢出?

我已经根据 HSL->RGB 和 HSV->RGB 算法实现了一些功能。
它们大多工作正常,但我不确定什么是正确的做法,然后颜色组件由于转换而溢出。

例如,红色分量最终是,1.2而允许的范围是[0..1]。如果我将它乘以 255,我显然会得到一个在 RGB 世界中无效的值。

处理这个问题的正确方法是什么——截断(if > 1 then set to 1)或环绕(if > 1 then substract 1)?

0 投票
2 回答
2827 浏览

jquery - Farbtastic 将 HSL 转换回 RGB 或 Hex

编辑:发布解决方案

我想根据 Farbtastic 中选择的颜色创建色板。我对 HSL 值进行了计算,因为它更容易并产生更好的结果。

从 Farbtastic 获得 HSL 值后,我添加了亮度以创建新颜色。新颜色是 HSL 格式,我需要将其切换回 RGB 或 Hex,以便显示并保存以备后用。一些浏览器显示 HSL,但我不相信所有移动浏览器等都会这样做。

问题是在计算完成后将变量“newcolor”转换回 RGB 或 Hex。

请注意,标记为答案的脚本适用于整数值。由于 Farb 返回了小数值,所以我做了一些小的编辑,如上所示。

Wordpress 主题作者:如果您正在使用Wordpress 的Options Framework 主题,并且想要使用 Farbtastic 以便您可以使用 HSL 值,请参阅Elihorn 的这个 Fork,其中包含您需要的文件。在这组文件中,我需要在我们将脚本排入队列的行中添加“wp_enqueue_style('farbtastic');”。不需要包含 farbtastic 的 .JS 文件,因为 WP 已经有了它。当然,您还需要将 Jquery 排入队列,可能位于 functions.php 的顶部。

对于这个问题的第 2 部分(重复问题),请参阅: Return different values from function used multiple times

0 投票
1 回答
847 浏览

php - 如何使用 php gd 对照片应用饱和度

我想使用 php gd 对照片应用饱和度,但我只知道进行图像编辑。我需要:

  1. 将 BGR 更改为 HSL
  2. 做一些我不知道的事情。
  3. 将结果从 HSL 更改回 BG​​R。

有人知道第 2 步的逻辑/算法是什么吗?还有其他更好的方法可以在 php 中对照片应用饱和度吗?

编辑:我所说的“应用饱和度”是指操纵/更改照片的饱和度,就像在大多数图像编辑工具(如 ipiccy.com)中所做的那样,以及在 Microsoft Office 2010 中编辑照片功能,您可以在其中更改滑块的值,然后照片的饱和度会改变。我想在 php 中编写代码来改变照片的饱和度,但我不知道如何开始。任何人都可以建议?谢谢你。