2017-01-04 9 views
0

Raphael.jsを使用してプログラムで生成されたSVGファイルがあります。 Raphael出力は、PHPを使用して実際のファイルに書き込まれます。 SVGには、Base64エンコードされたデータとして埋め込まれたイメージが含まれています。ファイルは次のようになります。SVG埋め込みイメージブラウザでのみ表示

<svg height="644" version="1.1" width="740" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="overflow: hidden; position: relative; top: -0.583008px;" viewBox="0 0 740 644" preserveAspectRatio="xMidYMid meet"> 
<image x="185" y="161" width="370" height="370" preserveAspectRatio="none" xlink:href="data: image/png;base64,iVBORw [-- lots of Base64-Data --] ==" transform="matrix(1.3696,-0.3064,0.3064,1.3696,-391.7711,-44.4982)" style="" stroke-width="0.7125311771299471"></image> 
<desc>Created with Raphaël 2.2.0</desc> 
<defs></defs> 
</svg> 

は、ここでは一例ファイルです:http://www.mybinaryromance.com/files/0.218636001483456524.svg

画像が正しくブラウザ(UbuntuでFirefoxやクロムをテストした)に表示されている、しかし、他のアプリケーション(Ubuntuの画像ビューアでは、 GIMP、TCPDF ...)、SVGは空に表示されます。なぜそれが起こっているのですか?

答えて

0

data:の後に空白を削除してください。 URI構文仕様では、特にURI内のスペースは許可されません。セクション2.4.3のhttps://tools.ietf.org/html/rfc2396を参照してください。

ブラウザは寛大であるかもしれませんが、他のプログラムはそうではないかもしれません。

これで何も変更されない場合、そのプログラムがSVG <image>でデータURIをサポートしていないことがあります。

関連する問題