PNG从哪冒出来的?
PNG全名Portable Network Graphics,字面上翻译过就是“可携性网络用图形”,这简单几个字已經明白定义了PNG的用途以及主要发展方向。1996年,PNG Group向W3C (World Wide Web Consortium)提出一种多媒体图形格式,重点在于改进现有JPG跟 GIF的缺点,并且提供更多新的概念与压缩模式,在提出后得到W3C的认可与推荐。在1st October, 1996,W3C正式发函公告,推荐PNG为最佳的图形格式,并且以“PNG Delivers Higher Quality Graphics for Web Page Design”这样高度推崇的文字来作为该文件的标头,看来PNG在1996年倒是相当风光。
PNG要如何发音?基本上跟“ping”的发音相同,或者是你想念做“P-N-G”也可以。PNG的非官方名称为“PNG's Not GIF”,颇挑釁,但是这也反映出目前网络图形的现实状況。怎么说呢,话说网络最常用的图形格式GIF,其专利权属Unisys所有,早在1994年底,Unysis公司就宣布,要求有支持GIF软件的作者須缴交专利费。此举对于一向以免费开放架构为主流的网络生态,杀伤力非常大。这时不少人便开始反对Unisys的作风,并且共同开发另一种图形标准,希望能完全取代GIF,而PNG(PNG's Not GIF)也就孕育而生,从1996年起加入网络图形的阵营。
PNG的图片文件格式特性
由于终极目标是为了取代GIF,因此PNG保留了大部分GIF的特性,像是Index Color、交举显示、透明区域、額外说明資訊等,都是GIF有的属性,而PNG在设定之初也保留了这样的原始功能。毕竟,想要取代对方,敌人会的招数自己还是得学学。
除此之外,PNG还加入了不少GIF所沒有的新功能,包括储存全彩影像(24bit)、256级透明层次(Alpha Channel)、Gamma值信息、CRC Check、可定义的级层显示、压缩方式可以随时扩充等,都是相当棒的特性,乍看之下,比起GIF跟JPG真的进步不少。
PNG vs GIF 大对決
口口声声要取代GIF,連PNG这个名字都擺明了就是要跟死要钱的GIF作对(PNG's Not GIF),那就得拿出真本事来,来能夠让使用者信服。以下分別針对各种不同属性的图片文件,做一完整的测试,比较看看,PNG是否有取代GIF的实力。
测试一:全彩Photo图片
取样标准选用短景深的花卉攝影,主要目的在于,比较能夠清楚了解图与压缩过后的解像能力。前景花卉的枝叶是否轮廓清晰,而后景朦胧的部分是否清楚展现其连续色级也是重点。红跟绿的对比配色,对于颜色数限制下的色彩展现,也有相当的测试性质。
|
GIF 16色 7.15k |
GIF 32色 9.63k |
GIF 64色 12.9k |
GIF 128色 15.6k |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
PNG 16色 9.51k |
PNG 16色12k |
PNG 16色15k |
PNG16色 16.5k |
首先是GIF与PNG的比较。测试之后,非常无奈的发现,PhotoShop似乎沒有对PNG以及GIF的压缩格式分別作最佳化。在抖色的色彩排列上,上下的比较可以很明显的看到,不论是GIF或是PNG,同一色彩数的抖色方式皆相同,也因此在画质上,兩种格式完全沒有差异。
既然画质沒有差异,那能夠比较的只剩下图片文件大小。在全彩照片的测试中,GIF在每一个颜色数中都占尽上风,平均图片文件只要PNG的80%大小,在全彩复杂图形的压缩上保有一定的优勢。PNG在这次的测试中占居第二。
测试二:全彩Photo图片 --> 24bit图形
|
JPG 25-Quality 5.97k |
JPG 50-Quality 9.19k |
JPG 75- Quality 18.9k |
JPG 100- Quality 38.3k |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
PNG 24bit 57.5k | |||
PNG在規格上可以压制24bit全彩图形,所以我們也增加了与JPG的比较测试。比较方式为,JPG采用分级段縮测试,分別由25、50、75到100,而PNG方面由于PhotoShop并未提供压缩比设定,在PNG規格上亦未标明24Bit图形的压缩品质如何控制,所以仅以一个样本来做比较。(PNG栏中的四张图皆为同一张,为了方便与上面四张JPG比较而复制四份)
测试結果发现,JPG在50的压缩品质下已经相当接近原图,而在75的压缩品质下,几乎已是很难发现压缩失真的痕迹。JPG的压缩方式在压缩全彩图片上确实优秀,而且K 数非常小,9K的画质已是嚇嚇叫。反观PNG,目前的24bit图片效果似乎中看不重用,图形品质虽好,但是在文件大小上的劣势却相当明显。看来24bit的PNG图形应用,还有待大力改进。
测试三:16色矩阵图形
在GIF完全剖析中,我們测试了GIF的压缩方式,当然在PNG的测试中,我們也如法炮制,测试一下图形的排列方式是否与PNG的压缩比有关。测试方式由线条、矩阵、3色矩阵、4色矩阵,一直到16色漸层矩阵,逐漸提高图形的复杂度,以下就是测试結果。
|
GIF 2色 272 bytes |
GIF 2色 572 bytes |
GIF 2色 591 bytes |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
PNG 2色 747 bytes |
PNG 2色 772 bytes |
PNG 2色 774 bytes |
|
GIF 3色 843 bytes |
GIF 4色 1013 bytes |
GIF 16色 3115 bytes |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
PNG 3色 796 bytes |
PNG 4色 803 bytes |
PNG 16色 1255 bytes |
测试結果发现,PNG的图形压缩方式与GIF并不相同,GIF在橫状图形的高压缩特点,并沒有在PNG上面看到。而有趣的是,在复杂度高的矩阵排列上,越复杂的矩阵,PNG压缩的比值越高。逐渐提高复杂度的状況之下,到了16色的漸层矩阵时,PNG的压缩比甚至是GIF的1倍多,看来在压缩复杂矩阵上,PNG扳回了一成。
测试四:128色以上复杂矩阵图形
在测试三中,我們比较了16色标准矩阵。可是在实际使用状況中,方方正正的标准矩阵图形并不常用到。于是我们增加了128色以上的复杂图形,模拟一般比较可能出现的图形状态,作为对照的参考。
|
GIF 16色 2.19k |
GIF 32色 2.70k |
GIF 64色 3.33k |
GIF 128色 4.21k |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
PNG 16色 1.39k |
PNG 16色 1.49k |
PNG 16色 1.66k |
PNG16色 1.90k |
测试結果发现,PNG在“色塊”的压缩上,确实有其独到之处,儘管是复杂的排列方式以及高達128色的色级,PNG在压缩比上依旧是GIF的約1倍多。用以往GIF的压缩图形經驗来看PNG的文件大小,这样的压缩比,确实令人惊艳。不用说,PNG在这个测试上又狠狠电了GIF一大截。
测试五:文字型GIF透明图片文件
在以往各汉字码不相通的网络时代,解决字码问题最可靠的辦法就是GIF文字,直接把文字轉成图形,就可以把字碼与排版的问题一次解決。现在GIF文字不流行了,但是用透明GIF 来解決排版问题,卻还是相当常見的用法。所以我們也测试了文字型GIF,当然也順便测试一下透明色的应用状況。
|
透明GIF 2色 1108 bytes |
透明GIF 3色 1325 bytes |
透明GIF 4色 1478 bytes |
透明GIF 5色 1561 bytes |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
透明PNG 2色 960 bytes |
透明PNG 3色 1004bytes |
透明PNG 4色 1184bytes |
透明PNG 5色 1200bytes |
基本的显示都没有问题,不论是GIF或是PNG在透明色上都相当正确,不过由于小P手边沒有较旧版的IE,所以在旧版IE浏览器上是否依旧兼容,这就不得而知了。Netscape 4.xx版似乎会有显示上的问题,颜色会举乱,大概是PNG图形解译器支持不全的因素。但是可以确信的是,在Netscape 6.0、IE5.5以上是完全相容的。
在图形大小上,PNG保持着自测试三以来的优勢,依旧小幅领先GIF约15%左右。
結語
测试一天下来真是累坏了,不过收获不少。然而对于PNG,我的感觉是:先天規划佳,有一定优勢,但是后天发展不足。
在PNG的原先規划上,对于GIF的完全取代性应该是第一要点,不过在Animation GIF的取代方案上卻偏偏漏掉了。后来该组织又发展出所谓MNG (Multiple-image Network Graphics),企图补足Animation上的不足,不过光是动态格式的不支持,我就给PNG打了一个大折扣,毕竟GIF的重要功能之一就是动态图形,少了Animation的功能,GIF恐怕也称霸不了这么久。
此外,绘图软件的支持也是一大问题,目前PhotoShop 6.0版并不能夠借由Save For Web功能,在PNG中有效储存2bit以上的Alpha层,在規格上颇诱人的Gamma值设定也不見踪迹,以这样业界表率的大哥级软件都不支持进级设定的状況下来看,PNG的进级应用似乎还要等一段时間。如果真要在PhotoShop中储存8bit Alpha,也是可以,利用Save As储存PNG就可以保留8 Bit Alpha层,但是图片文件視复杂情況,会比2 bit Alpha多出約3-7倍以上的大小。这样的文件大小似乎不是Web用图形可以容忍的,因此在8 bit Alpha的实用性上并不高。当然,如果您是Freehand的愛用者,那储存的便利性就另当別论了,当然会比PhotoShop绕了一圈才能保留8 bit Alpha来得便利。不过对我来说,一张网頁设計稿要切換兩个同质性的绘图软件来割图,只为了文件大小有点嚇人的8 bit Alpha PNG.. 唉,实在沒什么说服力。
不过,PNG的高压缩率,确实令人印象相当深刻。尤其是图表型的图片,PNG明显的比GIF来的更有竞争力,在沒有动态图形的困饶下,储存PNG图形跟GIF简直没有两样。而且图形压缩的更小,品质卻不受影响,这一点确实如W3C推荐般,图形更小,且维持高品质。
整体来说,我并不会想要換用PNG。这是实话,儘管我討厭壟斷以及趁機收費,但是我还是傾向支持GIF文件格式,因为GIF的相容度好,且Solution较为全面。对于講究相容、互通的网际网络来说,交換性勝过一切,而在这一点上,PNG可以努力的空間还很多。像是送几个红包给Adobe,請他們在下一版PS 7加入完整PNG支持,或是多发一些年终獎金给组织內的工炒,請他們用畢生的精力將MNG与PNG做整合,让PNG也能夠做Animation PNG..等。开点小玩笑,总之看样子,以现在的普及率来说,PNG短期內应该还不会取代GIF。此外,GIF版权费问题,我們也不用担心,因为收取对象为绘图软件开发捎邙非使用者,只是要小心Adobe、MacroMedia、Ulead等大廠絕对会偷偷把版权费转嫁到软件售价上的。








































