Ich habe eine Seite mit einem interaktiven SVG, die in allen Browsern (Firefox, Chrome, sogar IE/Edge) gut aussieht, außer Safari, wo alles von einem der SVG-Filter beeinflusst wird Brei (sieht aus wie etwas, das auf eine Leinwand mit niedriger Auflösung gerendert wurde, die mit bilinearer Interpolation skaliert wurde).SVG-Filter in Safari unter bestimmten Umständen unscharf
Hier nun ein kleiner Testfall, wo das Problem auch erscheint:
<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>
Wie sieht es auf Apple Safari 11 (auf OS X 10.13):
Vergleichen Sie das mit Google Chrome bzw. Mozilla Firefox:
Bei der Betrachtung other SVG filter demo pages on the web obwohl der Effekt offenbar nicht da ist. Nicht ganz sicher, was genau das verursacht. Was mir aufgefallen ist, dass das Problem umso deutlicher wird, je größer die Filterfläche ist (gesteuert durch die /height
Attribute von <filter>
).
Ist dies ein bekanntes Problem? Unter welchen Umständen tritt es auf? Was sind angemessene Problemumgehungen?
Haben Sie bemerkt, dass zwei Filterprimitive 'result =" lightenedBlur "'? – ccprog
@ccprog Geändert, macht keinen Unterschied. – phk