2016-02-25 58 views
1

有人可以幫助確定此處的問題。考慮這個SVG標記。ImageMagick在轉換爲PNG時未應用svg過濾器

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="446.5 158 967 368"> 
    <defs> 
     <filter color-interpolation-filters="sRGB" id="Sil2df3ui1g5" filterUnits="userSpaceOnUse"> 
      <feGaussianBlur stdDeviation="2" in="SourceAlpha"/> 
      <feOffset result="offsetblur" dy="10" dx="10"/> 
      <feFlood flood-color="orange"/> 
      <feComposite operator="in" in2="offsetblur"/> 
      <feComponentTransfer> 
       <feFuncA slope="1" type="linear"/> 
      </feComponentTransfer> 
      <feMerge> 
       <feMergeNode/> 
       <feMergeNode in="SourceGraphic"/> 
      </feMerge> 
     </filter> 
    </defs> 
    <g> 
     <g> 
      <text stroke="#8f02d0" id="fsjd" fill="#00a7f2" transform="matrix(2.39,0,0,2.39,-1280.19,-438.545)" style="font-size: 60px; text-anchor: middle; stroke-linejoin: round; filter:url('#Sil2df3ui1g5'); font-weight: 400; font-style: normal; letter-spacing: 0px; stroke-width: 2;" y="333" x="921">Lorem</text> 
      <text transform="matrix(1,0,0,1,-398,-145)" fill="#dd0000" style="font-size: 32px; text-anchor: middle; font-family: Ubuntu; font-style: normal; font-weight: 400; letter-spacing: 0px;" y="333" x="921">Safe Mode</text> 
      <text transform="matrix(1,0,0,1,416,185)" fill="#179c00" style="font-size: 32px; text-anchor: middle; font-family: Ubuntu; font-style: normal; font-weight: 400; letter-spacing: 0px;" y="333" x="921">Safe Mode</text> 
     </g> 
    </g> 
</svg> 

當我嘗試這個SVG轉換爲通過ImageMagick的巴布亞新幾內亞:

convert -background none item.svg item.png 

篩選器不會應用於

不過,如果我使用其他任何SVG(由Inkscape中/ AI等產生。)它轉換成功。我猜SVG標記有問題。

+0

http://www.imagemagick.org/discourse-server/viewtopic.php?t=28235 –

回答

2

如果您爲過濾器指定IRI,請勿使用單引號。

更改此

filter:url('#Sil2df3ui1g5'); 

filter:url(#Sil2df3ui1g5); 

至少在我的機器上,這樣可以解決問題。

根據W3C驗證程序,單引號應該可以,好像是ImageMagick中的一個bug。

+0

得到了同樣的問題,我沒有考慮刪除那些非常感謝的引號! – Xenos