【问题标题】:SVG blending mode bug in ChromeChrome 中的 SVG 混合模式错误
【发布时间】:2012-10-21 14:01:33
【问题描述】:

最近我正在处理一个项目,我需要使用 SVG 并且它是混合模式过滤器。 基本元素是背景图像,然后是一些形状(主要是实心填充的路径)。 问题是 Chrome 的渲染似乎有些困难 - 背景图像太亮,混合路径周围出现一些奇怪的过亮矩形。 Firefox 和 Opera 同时运行良好。

有一个显示错误的额外设置示例:Live example

代码中最重要的部分:

<svg version="1.1" id="layer-0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="1097" height="835" viewBox="0 0 1097 835">
<defs>
    <filter id="img">
        <feImage xlink:href="static/img/bg.jpg" x="0" y="0" width="100%" height="100%" />
    </filter>

    <filter id="filter">
        <feImage result="img1" xlink:href="static/img/bg.jpg" x="0" y="0" width="100%" height="100%" />
        <feBlend mode="multiply" in="SourceGraphic" in2="img1" result="multi" />
    </filter>
</defs>

<image xlink:href="static/img/bg.jpg" width="100%" height="100%" />

<g style="filter:url(#img)" height="100%" width="100%" id="fix"></g>

<circle filter="url(#filter)" class="shape" cx="560" cy="380" r="120" />

我不得不添加一个额外的图像标签,因为#filter 中使用的背景被剪裁了(但为什么?)。 是对 Chrome 的修复,但它不是一个令人满意的解决方案。

有谁知道这个错误的原因是什么?也许我做错了?我花了几十个小时解决这个问题,仍然没有效果。

【问题讨论】:

  • 嗯,这确实很奇怪。 Safari 也可以正常工作。我希望这是一个错误,也许是这个? code.google.com/p/chromium/issues/…
  • 另一个注意事项:如果您在 Chrome Canary 中启用硬件加速 SVG 过滤器,该错误就会消失。
  • 是的,你是对的。我希望新的 Chrome 版本能够修复这个错误。

标签: google-chrome svg blending svg-filters


【解决方案1】:

我遇到了类似的问题,我通过从 html 标头中删除基本元素来修复它。我认为这是 chrome 中的一个错误。

【讨论】:

    猜你喜欢
    • 2015-08-09
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2017-10-14
    • 2016-04-08
    • 1970-01-01
    相关资源
    最近更新 更多