Sco*_*ots 3 javascript alphablending colors
我正在尝试创建一个工具来帮助我为网络应用程序选择颜色。基本上,我希望能够指定最终颜色和一些叠加参数,并确定底层颜色需要是什么(或者是否可以使用指定参数实现)。
所有覆盖层都将是半透明的黑色。
该系统如何工作的示例:
我应该指出,我不需要帮助来编写实际代码,我只是不知道要使用的数学公式,而且我今天的 Google 能力很弱。我能找到的最接近的是这个优秀的答案(/sf/answers/856005041/),但它缺少“了解最终所需颜色、了解叠加颜色、了解叠加不透明度”的迭代
您可以一次执行一个通道;该公式的工作原理如下:
通道的最终颜色计算如下:
finalColor = originalColor * (1.0 - opacity) + overlayColor * opacity;
Run Code Online (Sandbox Code Playgroud)
就您而言,您知道最终颜色、叠加颜色和不透明度;进行一些代数计算,我们得出以下结论:
originalColor = (finalColor - overlayColor * opacity) / (1.0 - opacity);
Run Code Online (Sandbox Code Playgroud)
只需注意不透明度 = 1.0 的边缘情况;在这种情况下你根本无法计算原始颜色;更具体地说,如果不透明度 = 1.0,任何颜色都可以完成这项工作。
此外,该公式最终可能会产生负值或大于 255 的值;这些值意味着您无法完全获得能够给出您想要的结果的颜色。
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |