Chrome 打破 SVG 图案填充
Chrome Breaks SVG Pattern Fills
在最新版本的 Chrome 和 Safari 中查看此 SVG。
在 Safari 中,您会看到彩色填充。在 Chrome 中,填充不呈现。
关于如何修复此错误的任何想法?这似乎是最新 Chrome 版本 (https://code.google.com/p/chromium/issues/detail?id=452235)
的一个新错误
为简洁起见,我去掉了d坐标
<?xml version="1.0" standalone="no"?>
<svg width="2000" height="2000" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<linearGradient id="Gradient1">
<stop offset="5%" stop-color="white"/>
<stop offset="95%" stop-color="blue"/>
</linearGradient>
<linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1">
<stop offset="5%" stop-color="red"/>
<stop offset="95%" stop-color="orange"/>
</linearGradient>
<pattern id="Pattern" x="0" y="0" width=".25" height=".25">
<rect x="0" y="0" width="50" height="50" fill="skyblue"/>
<rect x="0" y="0" width="25" height="25" fill="url(#Gradient2)"/>
<circle cx="25" cy="25" r="20" fill="url(#Gradient1)" fill-opacity="0.5"/>
</pattern>
</defs>
<g typename="Graphic" artname="PRAYING HANDS" min_size_x="0" min_size_y="0" size_locked="false" transform="matrix(1 0 0 1 100 100)"><g artname="PRAYING HANDS" data-artwork-id="1041" transform="">
<title>Praying Hands</title>
<g transform="matrix(1 0 0 -1 -2401 2972)" style="text-rendering:optimizeLegibility;shape-rendering:default;image-rendering:optimizeQuality" artname="PRAYING HANDS" data-artwork-id="1041">
<path fill="url(#Pattern)" d="..." opacity="1"></path>
</g>
</g>
<!-- outline -->
<g transform="matrix(1 0 0 -1 -2400.16 2971.63)" style="text-rendering:optimizeLegibility;
shape-rendering:default;
image-rendering:optimizeQuality" artname="PRAYING HANDS" data-artwork-id="1041">
<desc>Untitled</desc>
<path style="fill:purple;stroke:#000000;fill-rule: evenodd;stroke-width:0.000001" d="..." fill="none" opacity=""></path>
</g>
</g>
</svg>
这不知何故是由改造 to-be-filled 事物或它们的 parents 引起的,请尝试不使用它。对于我的情况,"scale(-1,1)" 导致了问题。我通过手动进行转换来解决这个问题,这对于 scale(-1,1) 来说很容易。在没有问题的地方平移和旋转。
干杯,
凯
这是 Chrome 中的已知错误。
https://code.google.com/p/chromium/issues/detail?id=447707
看起来会在 Chrome 41.
中修复
在最新版本的 Chrome 和 Safari 中查看此 SVG。
在 Safari 中,您会看到彩色填充。在 Chrome 中,填充不呈现。
关于如何修复此错误的任何想法?这似乎是最新 Chrome 版本 (https://code.google.com/p/chromium/issues/detail?id=452235)
的一个新错误为简洁起见,我去掉了d坐标
<?xml version="1.0" standalone="no"?>
<svg width="2000" height="2000" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<linearGradient id="Gradient1">
<stop offset="5%" stop-color="white"/>
<stop offset="95%" stop-color="blue"/>
</linearGradient>
<linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1">
<stop offset="5%" stop-color="red"/>
<stop offset="95%" stop-color="orange"/>
</linearGradient>
<pattern id="Pattern" x="0" y="0" width=".25" height=".25">
<rect x="0" y="0" width="50" height="50" fill="skyblue"/>
<rect x="0" y="0" width="25" height="25" fill="url(#Gradient2)"/>
<circle cx="25" cy="25" r="20" fill="url(#Gradient1)" fill-opacity="0.5"/>
</pattern>
</defs>
<g typename="Graphic" artname="PRAYING HANDS" min_size_x="0" min_size_y="0" size_locked="false" transform="matrix(1 0 0 1 100 100)"><g artname="PRAYING HANDS" data-artwork-id="1041" transform="">
<title>Praying Hands</title>
<g transform="matrix(1 0 0 -1 -2401 2972)" style="text-rendering:optimizeLegibility;shape-rendering:default;image-rendering:optimizeQuality" artname="PRAYING HANDS" data-artwork-id="1041">
<path fill="url(#Pattern)" d="..." opacity="1"></path>
</g>
</g>
<!-- outline -->
<g transform="matrix(1 0 0 -1 -2400.16 2971.63)" style="text-rendering:optimizeLegibility;
shape-rendering:default;
image-rendering:optimizeQuality" artname="PRAYING HANDS" data-artwork-id="1041">
<desc>Untitled</desc>
<path style="fill:purple;stroke:#000000;fill-rule: evenodd;stroke-width:0.000001" d="..." fill="none" opacity=""></path>
</g>
</g>
</svg>
这不知何故是由改造 to-be-filled 事物或它们的 parents 引起的,请尝试不使用它。对于我的情况,"scale(-1,1)" 导致了问题。我通过手动进行转换来解决这个问题,这对于 scale(-1,1) 来说很容易。在没有问题的地方平移和旋转。
干杯, 凯
这是 Chrome 中的已知错误。
https://code.google.com/p/chromium/issues/detail?id=447707
看起来会在 Chrome 41.
中修复