我正在开发一个使用img标签显示SVG文件的移动网站. SVG文件大约为500 kB.该图像在
Android版本的Firefox和Chrome中呈现正常.但是,在iOS Safari中,我只会看到带有问号的可怕的小蓝盒子.
我知道iOS中的图像文件大小有限制.根据Apple的Safari Web Content Guide:
The maximum size for decoded GIF,PNG,and TIFF images is 3 megapixels for devices with less than 256 MB RAM and 5 megapixels for devices with greater or equal than 256 MB RAM.
That is,ensure that width * height ≤ 3 * 1024 * 1024 for devices with less than 256 MB RAM. Note that the decoded size is far larger than the encoded size of an image.
我想SVG文件的大小有一些限制,但由于它们是矢量化的,因此用解码像素描述它们的大小并没有多大意义.有谁知道如何确定SVG文件的限制?
附:当我直接浏览SVG文件而不是通过HTML页面时,我能够查看图像.我也可以在IFRAME中查看SVG文件.但不使用img标签.
解决方法
我制作了一些不同大小的测试SVG文件.它们看起来像这样:
<?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>
使用BrowserStack模拟iPhone 5和第三代iPad,我发现故障点介于2200×2200和2400×2400像素之间. 500万像素的限制对应于2289×2289的图像,因此这与Duopixel’s comment一致,表明渲染的大小是重要的.