我尝试使用此代码http://bl.ocks.org/nbremer/0e98c72b043590769facc5e829ebf43f中的过滤器。在Win 7上的Firefox 56(64位)中取得的效果很好,但在Chrome 62(64位)中却很奇怪。颜色更浅,效果看起来不像FF那样光滑。
我已经阅读了很多关于Safari没有正确显示这些过滤器的问题,但我找不到有关Chrome的任何信息。
请看下面的截图:
知道导致差异的原因是什么以及如何在Chrome中修复它?
答案 0 :(得分:2)
应用的Color Matrix过滤器读取
<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一起使用。
过滤器尝试创建一种&#34; cutoff&#34;值表示:如果不透明度低于theshold值,则将其设置为0,如果高于该值,则将其设置为1.但实际上是一个小的中间区域(0.437&lt; opacity&lt; 0.526),其中产生的不透明度为其间。
如果你想使用真正离散的函数,那就是这个:
<feComponentTransfer>
<feFuncA type="discrete" tableValues="0 1" />
</feComponentTransfer>
这似乎适用于Firefox for Windows。