2

我正在尝试使用此代码http://bl.ocks.org/nbremer/0e98c72b043590769facc5e829ebf43f中的过滤器。在Win 7上的Firefox 56(64bits)中实现的效果很好,但是在Chrome 62(64bits)中就奇怪了。颜色要浅得多,效果看起来不像FF那样平滑。

我已经阅读了很多关于 Safari 无法正确显示这些过滤器的问题,但我找不到关于 Chrome 的任何信息。

请看下面的截图:

  • 火狐

在此处输入图像描述

  • 铬合金

在此处输入图像描述

知道是什么导致了差异以及如何在 Chrome 中修复它吗?

4

1 回答 1

2

应用的颜色矩阵过滤器读取

<feColorMatrix mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 19 -9" />

从理论上讲,它在数学上与以下组件传输过滤器相同:

<feComponentTransfer>
  <feFuncA type="linear" slope="19" intercept="-9" />
</feComponentTransfer>

在实践中,实施似乎有所作为。对我来说,第二个版本在 Chrome 62 (Linux) 中给出了预期的结果,而第一个版本如前所述被淘汰了。

不幸的是,这两个版本都不适用于 Firefox for Windows 和 Safari。

密码笔

过滤器尝试创建一种“截止”值,它表示:如果不透明度低于阈值,则将其设置为 0,如果高于,则将其设置为 1。但实际上这是一个小的中间区域(0.437 <不透明度 < 0.526),其中产生的不透明度介于两者之间。

如果你想使用一个真正离散的函数,那就是这个:

<feComponentTransfer>
  <feFuncA type="discrete" tableValues="0 1" />
</feComponentTransfer>

密码笔

这似乎适用于 Firefox for Windows。

于 2017-11-10T16:15:29.870 回答