哪种格式最适合保存用于网站的图像;PNG或SVG?


Answers:


8

我想说PNG仅仅是因为它似乎比SVG更受人们接受。


3
对于高质量的SVG来说更好,但实际上唯一可行的解​​决方案是PNG,因为SVG在当前日期尚未得到全球支持。
2011年

@Littlemad渲染和显示SVG也比仅用PNG绘制图像要慢。
2011年

1
@Littlemad不必。您可以对IE <9使用VML解决方法,也可以在服务器上预渲染它,甚至可以使用基于Flash的嵌入将其呈现在IE上。所有的浏览器(至少是主要的浏览器)都支持SVG,只有IE 6、7和8与我们合作。因此,只要使用任何不可怕的解决方法,如果他们看到一个更糟糕的网站,那就是他们的错。这很像SDTV vs HDTV或DVD vs BluRay。
卡米洛·马丁

1
在2014年,这个答案可能应该支持SVG。
汉娜(Hanna)2014年

1
2015 caniuse.com/#search=svg-基本上没有IE8
goodship11年

18

这里的简单答案是同时使用两者。

您已将SVG命名为一个选项,这意味着我们可以排除照片图形作为预期的用例-因为SVG仅适用于徽标,图标和类似剪贴画的插图等线条艺术图形。

如果您正在考虑选择照片图形,则别无选择。PNG可能永远会更好。对于SVG是可行选项的图形,SVG是具有PNG / JPEG后备功能的最佳选择。PNG具有许多优势,但是在可伸缩性和文件大小上,它通常无法与SVG匹配。

仅使用其中一种意味着您将不得不牺牲向后兼容性或逐步增强。

相互权衡之后,在当前时间点,PNG肯定会比SVG支持更多的浏览器,但是新发布的设备的分辨率将不断提高,这意味着PNG要么需要基于各种各样的不同分辨率来提供服务,(通过媒体查询,JavaScript或用户代理嗅探)或由浏览器缩放,可能会产生一些不完美的结果。

看看我们知道未来会怎样;永远在互联网上提供更高的分辨率,更广泛的支持和SVG的广泛使用;为即将发生的事情进行构建很有意义。

一般而言,网站应该建立多年。在5年内,对于仍然使用旧版浏览器的2%的互联网用户而言,您向后兼容的网站可能看起来很棒,但是对于具有疯狂分辨率的最新版浏览器来说却是相当差的-因此,选择哪种方式很难妥协。


2014年11月的选择

  1. 仅限PNG

    • 为了质量起见,您至少需要根据屏幕尺寸和分辨率提供五个不同的版本-这是一个非常保守的估计,如果您想要非常彻底的话,最终可能会获得10-15个同一图像的版本。这也需要一些时间来实施。

    • 如果您选择提供单个图形并让浏览器对其进行缩放,则结果可能会不尽人意,甚至可能取决于缩放的数量而变得难看。

    • 大量媒体查询可能会不必要地使CSS膨胀,并对页面加载速度产生负面影响。

    • 在较旧的浏览器和设备上看起来不错,但在较新的浏览器和设备上看起来不太好。

  2. 具有单个PNG / JPEG / GIF后备功能的SVG

    • 您可以在任何地方使用SVG,然后将其回退为不支持SVG的浏览器的另一种格式。主要优点是,所有不同的分辨率只需要一个文件。

    • 如果您妥协并接受过时浏览器上的用户可以使用缩放比例不完美的图形,则每个文件仅需要PNG,JPEG或GIF格式的另一个版本。

    • 与仅使用PNG的媒体查询相比,这将花费相似的时间-甚至可能更少,这意味着价格可能大约相同。

    • 在所有新设备上看起来都不错,但在旧技术上做出了一些牺牲。

  3. SVG具有多个PNG / JPEG / GIF后备,具体取决于分辨率和屏幕尺寸

    • 您可以先提供SVG,然后为不支持SVG的浏览器提供与分辨率有关的PNG。这将是最彻底,最向后和向前兼容,最一致且最昂贵的耗时选项。

    • 大概需要花费1&2的时间,加上一些额外的时间来解决这些问题。

    • 几乎在所有设备上看起来都很棒。


综上所述,笔者认为这取决于你是否正在寻找更多的向后兼容性以上渐进增强,多少时,你不得不花费。


1
您可能会提到有关<picture>元素可以帮助处理各种图像大小的内容
Zach Saucier 2014年

15

如果您拥有明显的优势,那么SVG是可伸缩的。对于像素图形,PNG更好。缺点是Internet Explorer仅在即将发布的版本9中(与插件一起使用)才支持SVG。移动浏览器也可能对SVG的支持有限。

编辑:正如ClemDesm指出的那样,较早的IE版本不支持完全透明的PNG,因为支持IE8。非透明的PNG可以正常工作。目前,Computerish的答案为处理矢量图像提供了一个很好的解决方案:将其保留为SVG,但将其作为PNG导出到Web。我完全同意这种解决方案。


-1 Svg仍然不受全球支持。如果您不清楚在哪里工作,以及在不工作的情况下(最好)使用后备替代方案,我不会建议使用。我们必须考虑我们试图实现的Web标准。如果选择用于Web,并且用于PNG或SVG,则应始终为PNG,直到SVG受到较早一代浏览器的全局支持。我很想使用SVG完美,但这还不是现实。
Littlemad

如我所写,IE不支持SVG(仅在现在的将来版本9中),并且移动浏览器也可能缺少支持。
Mnementh,2011年

@Littlemad:downvote有点夸张,因为1-答案告诉我们它没有被完全支持(好的,没有那么多细节,但是,它被告知而且没有错,不应该使用-1)2- PNG alpha通道IE6和7也不受支持,对此一言不发吗?:)
Shikiryu 2011年

@ClemDesm:嗯,一个很好的提示,较旧的IE并不完全支持透明的PNG。
Mnementh,2011年

1
@Littlemad“最近的许多浏览器均不支持”这似乎是一个错误的结论,因为在链接的参考资料中,只有一个浏览器无法处理SVG(IE8)。您也不需要安装插件即可使用SVG(也许从未在IE6中看到过)。在链接参考上以红色显示的是SVG的一部分,您通常不会使用(主要是某种滤镜或其他效果)。基本原理。
Feeela 2011年

5

绝对将PNG用于网站。SVG只是没有得到足够的广泛支持,对于扁平化的出口,它与PNG相比几乎没有(如果有的话)明显的好处。也就是说,将所有工作副本都保存在SVG中。


1
将原始文件保留为SVG并将其导出到PNG进行Web处理的好方法。如果以后更好地支持SVG,则可以对其进行更改。我会推荐矢量图像的解决方案。
Mnementh,2011年

2
“与PNG相比,它几乎没有(如果有的话)明显的好处”是什么?您如何通过CSS或JavaScript处理PNG?如何在不降低分辨率的情况下扩展它们?您如何链接图像的各个部分(例如地图上的国家/地区链接)?SVG文件通常也比PNG小得多(小图标除外)。
Feeela 2011年

3
SVG与PNG相比在矢量插图方面具有很多优势。
2011年

0

为了安全起见,我会坚持使用PNG。SVG仍未被许多大型互联网公司和浏览器完全接受。尽管SVG具有可伸缩性并且是向量,但它们通常是不必要的,占用更多空间并使网站过于复杂。

我希望能回答您的问题:)


“占用更多空间并过于复杂”?为何如此?
2014年

1
我敢肯定它可能会影响你的搜索引擎优化您的图片可能无法在谷歌出现了,我不是100%肯定,但它通常的情况是SVGs需要较长时间才能负荷
nicolos

2
加载时间取决于文件大小,其中SVG通常可以小得多。而且,如果Google图片搜索对您网站的SEO很重要,是的,PNG可能会更好,但是我认为这是一件小众的事情。
2014年

1
是的,我的意思是说到最后,没有正确或错误的答案。文件大小很大程度上取决于图像的复杂性,是的,您的选择取决于用例。我只是在说明不同文件类型的优缺点:)
nicolos 2014年

-1

即使SVG在全球范围内不被接受,并且某些人在缩放PNG上的时间令人沮丧,但我始终发现,在Adobe Illustrator中创建图标最适合放大或缩小“合理”的数量。


Adobe Illustrator是否允许png或svg或两者同时使用,或者在这里命名Illustrator的确切原因是什么?为什么您认为svg不被全球接受?
Mensch 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.