2013-06-11 25 views
5

IMGタグを使用してSVGファイルを表示するモバイルサイトを開発中です。 SVGファイルは約500 KBです。 Android版のFirefoxとChromeでは、画像は問題なくレンダリングされます。しかし、iOS Safariでは疑問符のついた恐ろしい小さな青色のボックスしか表示されません。iOS SafariのSVGファイルサイズ制限

私は、iOSの画像ファイルのサイズに制限があることを認識しています。 AppleのSafari Web Content Guideによると:

復号化されたGIF、PNG、およびTIFF画像の最大サイズは256 MB未満のRAMを持つデバイスのための3メガピクセルおよび以上より256 MBのRAMを持つデバイスのための5メガピクセルです。

つまり、RAMの容量が256 MB未満のデバイスでは、幅*高さが3 * 1024 * 1024であることを確認してください。デコードされたサイズは、画像の符号化されたサイズよりはるかに大きいことに注意してください。

私はSVGファイルのサイズには限界があると想像していますが、ベクトル化されているので、デコードされたピクセルの観点からサイズを記述するのは実際には意味がありません。誰もSVGファイルの制限がどのように決定されているか知っていますか?

P.S. HTMLページではなくSVGファイルを直接ブラウズすると、画像を見ることができます。私はIFRAME内のSVGファイルを見ることもできます。しかし、IMGタグを使用していません。

+0

シーンの裏側では、ブラウザはベクトルをレンダリングし、画像タグを持つビットマップとして扱うため、同じ制約が適用されます。あなたのSVGの寸法は?あなたのSVGの中にdata-urisを埋め込んでいますか? – Duopixel

+0

私の場合、レンダリングされたSVGファイルのサイズは、ビューポートの寸法から決定されます。 iPhoneでは、600x600のようなものになります。 iPadでは、1500x1500のようになります。私の計算では、これらの次元はまだ私が上に掲げた限界に従っています。 –

+0

ええ、それらの次元はあなたを困らせてはいけないので、それを捨てることができます。しかし、ベクトル画像の場合は500KBが余りにも多いですが、ビットマップ画像が埋め込まれていますか? – Duopixel

答えて

7

さまざまなサイズのテスト用SVGファイルをいくつか作成しました。 iPhone 5や第三世代iPadをエミュレートするBrowserStackを使用し

<?xml version="1.0"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg width="2000" height="2000" xmlns="http://www.w3.org/2000/svg"> 
    <text x="100" y="100" font-size="50">2000x2000</text> 
</svg> 

、私は降伏点がどこかに2200x2200と2400x2400ピクセルの間であることがわかった:彼らはこのようになります。 5メガピクセルの制限は2289x2289のイメージに対応しているため、レンダリングされたサイズが重要であることを示すDuopixel's commentと一致しています。

+0

高さが400pxのSVGスプライトマップがあるため、幅/高さだけでなく総面積でなければなりません。幅は12,000pxで問題ありませんでしたが、12,000pxを超えると破損しました。私は正方形のフォーマットのためにそれを再フォーマットし、それは400px x 12,000px SVGと同じ結果を生む2886px x 2405pxになった。 – Brian

関連する問題