SVGフィルタの影響を受けるすべてがファジーになるSafari以外のすべてのブラウザ(Firefox、Chrome、さらにはIE/Edge)上で正常に表示されるインタラクティブSVGを持つページがありますmush(双線形補間を使ってスケールアップされた低解像度のキャンバスにレンダリングされたもののように見えます)。今ここでいくつかの状況でSafariでSVGフィルタが曖昧になる
問題も表示される小さなテスト・ケース:
<svg>
<defs>
<filter id="filter" y="-100" x="-100" height="300" width="300">
<feGaussianBlur in="SourceAlpha" stdDeviation="3.5"></feGaussianBlur>
<feColorMatrix type="matrix" values="0 0 0 2 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0" result="lightenedBlur"></feColorMatrix>
<feMerge>
<feMergeNode in="lightenedBlur"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<g>
<rect x="10" y="10" width="100" height="100" fill="blue" filter="url(#filter)"></rect>
</g>
</svg>
はそれが(OS X 10.13上)アップルのSafari 11にどのように見えるか:
それをGoogle ChromeとMozilla Firefoxとそれぞれ比較してください:
other SVG filter demo pages on the webを見ると、明らかに効果はありませんが。正確に何が原因かわかりません。私が気づいたのは、フィルタの領域が大きくなるほど(width
/height
の属性が<filter>
で制御される)問題がより顕著になることです。
これは既知の問題ですか?それはどのような状況下で起こるのですか?合理的な回避策は何ですか?
あなたは2つのフィルタプリミティブが 'result =" lightenedBlur "'を使用していることに気付きましたか? – ccprog
@ccprog変更されても違いはありません。 – phk