网站制作的颜色是什么原理
- By 本站 - 2023-04-04 19:18
- Read:272
我网站制作过程中,几乎网络上的所有颜色(从普通 PNG 文件中的数据到 CSS 和 SVG 中的十六进制值)都不是以实际颜色强度表示的,而是使用称为“8 位sRGB ”的有损压缩算法。大多数人称其为“颜色空间”,但其主要目的是以比存储与光强度相对应的实际数字亮度值所需的更少位来表示颜色数据。因此,将其视为一种有损压缩技术更为有用。
不幸的是,通过将其称为“颜色空间”,我们误导了绝大多数开发人员相信您可以对 sRGB 颜色进行数学运算,并且通过将原始 sRGB 数字暴露给用户,我们误导了他们认为这些数字有合理的意义。就像你不能在不解压缩的情况下混合两个 MP3 文件的位*并期望得到听起来像两种声音正确混合在一起的东西一样,你不能取两个 sRGB 颜色值,混合它们,然后期望得到正确的颜色。然而,这是每个主要浏览器所做的。
处理 sRGB 数据的正确方法是先将其转换为线性 RGB 值,然后对其进行处理,然后在需要时将其转换回 sRGB。如果您直接对 sRGB 颜色数据进行任何数学运算,您的代码将被破坏。请不要那样做。现在是 2022 年;是时候让计算机图形正常工作了。
有一个color-interpolationSVG 属性可以解决这个问题,本页尝试使用它。不幸的是,还没有浏览器实现它。该属性于2003年首次在SVG 1.1中指定。我们即将推出 20 年不费心实现正确颜色混合的浏览器。
值得一提的是,GPU 制造商和大多数游戏开发者早就意识到了这一点,因为现实环境需要线性处理,尤其是具有复杂效果的环境。现代 GPU 在加载和渲染图像时可以透明地从/转换为sRGB,而不会造成任何性能损失。当使用损坏的设计工具的设计师发现正确实现的游戏引擎中的东西看起来不同时,这最终会导致痛苦。
转载请保留出处及原文地址:/index.php?r=article/Content/index&content_id=518