Portable Network Graphics

PNG, "Taşınabilir Ağ Grafiği" anlamındaki (Portable Network Graphics) 'in kısaltmasıdır ve kayıpsız sıkıştırarak görüntü saklamak için kullanılan bir saklama biçimidir. PNG biçiminde paletli ya da gerçek renkte görüntüler seçimlik bir saydamlık kanalıyla saklanabilir.
Halihazırda GIF gibi kabul edilebilir başarımda ve yaygın bir kayıpsız sıkıştırma algoritması varken PNG'nin geliştirilmesini motive eden şey, Unisys'in GIF'de kullanılan LZW algoritması üstündeki patent hakkının ihlallerini takip edeceğini duyurması oldu. Gelişen ve yaygınlaşan donanım teknolojisiyle beraber GIF biçimi yetersiz kalmaya da başlamıştı. PNG, bir W3C tavsiyesi olarak 1.0 sürümüyle 1 Temmuz 1996'da yayımlandı. 1.1 ve 1.2 sürümleriyle yeni genişletmeler tanımlandı ve 1.2 sürümü küçük değişikliklerle ISO/IEC 15948:2003 adıyla bir ISO standardı oldu. PNG'nin kabulü, Unisys'in Ağustos 1999'da ticari olmayan veya özgür yazılım için telif ücretlerinden muaf LZW lisansını kaldırmasıyla daha da hızlandı.
Teknik özellikleri
Veri sıkıştırma
GIF'deki patent sorunlu LZW yerine PNG'de zip, gzip ve türevlerince de kullanılan
LZ77 algoritması kullanılmaktadır. zlib gibi yaygın olarak kullanılan gerçeklemelerinin de bulunması bu seçimin bir nedeni olmuştur. Benzer ayarlar kullanıldığında, bu algoritma LZW'ye göre çok daha iyi sonuçlar vermektedir. Ancak, her iki algoritma da resmin iki boyutlu doğasını göz ardı ederek, resimleri bir boyutlu veri akımları kabul edip sıkıştırdıklarından optimum kayıpsız iki boyutlu sıkıştırmadan uzaktırlar.
Renkler ve saydamlık
GIF gibi PNG de paletli resimleri destekler, piksel başına 1, 2, 4 ya da 8 bitlik paletli resimler oluşturulabilir. Bunun dışında, gerçek renkli resimler için kanal başına 8 ya da 16 bit kullanılır. PNG gri ton ya da kırmızı, yeşil ve mavi renkli kanalların yanı sıra renk kanallarıyla aynı duyarlılıkta bir saydamlık kanalı da destekler; GIF'de saydamlık bir renk değerinin saydam olarak işaretlenmesiyle elde ediliyordu.
Tarama ve animasyon
PNG biçimi hareketli resimleri desteklemez. PNG tabanlı MNG ve APNG biçimleriyle (GIF stili) hareketli resimler desteklenmektedir, ancak bu biçimlerin ikisi de küçük kitleler tarafından kullanılmaktadır.
Uygulama desteği
İçlerinde GIMP, Inkscape, Adobe Photoshop, Macromedia Fireworks, Microsoft Paint ve Apple iPhoto'nun da bulunduğu birçok program PNG biçiminde görüntü saklamayı desteklemektedir.
PNG biçiminde görüntü üretirken, görüntünün istenen kalite seviyesinin gerektirdiği en az renk derinliğinde saklanması gerektiği unutulmamalıdır. Örneğin, siyah-beyaz bir çizimi 8-bit gri tonlamada saklamak dosya büyüklüğünü çok artıracaktır. PNG görüntüyü üreten programın sakladığı meta verinin çokluğu da dosyanın şişmesinde bir etkendir. Çoğu programlar sadece program adı ve zaman bilgisi gibi şeyleri saklarken Macromedia Fireworks gibi programların ayrıntılı ve büyük miktarda veriyi PNG dosyalarında tuttuğu bilinmektedir.
Web tarayıcı desteği
Özgür yazılım olan tarayıcıların hemen hepsi libpng kullanarak PNG desteklerini gerçekledikleri Internet Explorer'ın PNG desteği sağlaması diğer tarayıcılara göre daha yavaş gerçekleşmiştir. Internet Explorer 6, saydamlık kanallı PNG'leri desteklemezken, Internet Explorer 7 ile PNG'ye iyileştirilmiş bir destek verilmektedir. Internet Explorer 8 ve sonrasındaki sürümleri, PNG görüntü biçimine tam destek vermektedir.
Diğer görüntü biçimleriyle karşılaştırması
JPEG ve PNG
Fotoğraf ve fotoğraf benzeri resimlerde JPEG, PNG'ye göre çok daha küçük dosyaları küçük kalite kayıpları bedeliyle üretecektir. Çizim ya da metin gibi keskin geçişler içeren resimlerde PNG çok daha iyi sonuç verecektir, çünkü bu tür resimler frekans domaininde kompakt biçimde gösterilemezler. JPEG ile sıkıştırıldıklarında bu resimlerdeki çizgi ve metinlerin etraflarında basamaklanmalar ve bulanıklıklar görülür.
PNG'nin JPEG'e genelde tercih edilmemesindeki en büyük etken, kayıplı bir sıkıştırma algoritmasını kullanan JPEG'e kıyasla, PNG dosyalarının kimi zaman 4-5 kat daha fazla disk alanı kaplamasıdır. PNG keskin kenarlı, vektörel ve metin içeren resimlerde daha başarılı sonuç verirken, İnternet'teki yüklenme hızının kabul edilebilir kalite kaybına tercih edildiği durumlarda JPEG kullanılmaktadır.
JPEG, kullanılan sıkıştırma algoritmasının yüksekliğiyle orantılı olarak, özellikle kenar ve renk geçişlerinde (gradient) kalite kaybına uğrayan bir biçimdir. Ancak yüksek sıkıştırma yeteneği ve EXIF bilgilerini saklayabilmesi gibi üstünlükleri, sayısal kameralarda JPEG biçiminin yaygınlaşmasını sağlamıştır.
TIFF ve PNG
TIFF de patent problemli LZW algoritmasını kullanmaktadır. Web tarayıcılarının çoğu, genel kitlelerin kullanımı için çok detaylı olan TIFF biçimini dahili olarak desteklememektedir. TIFF destekleyen uygulamaların büyük bir kısmı da standardın altkümelerini desteklediğinden uyum problemleri çıkabilmektedir. Öte yandan TIFF, CCITT Grup 4 gibi özelleşmiş algoritmalar sayesinde siyah-beyaz görüntüleri PNG'den daha iyi sıkıştırmaktadır.
GIF ve PNG
Küçük görüntüler için GIF biçimi, PNG'ye göre daha fazla sıkıştırma olanağı sağlar. PNG biçimi, GIF'e göre daha geniş şeffaflık seçenekleri sunar. PNG biçimindeki görüntüler, GIF'e göre daha az program tarafından desteklenir (örneğin eski Office yazılımları ve internet tarayıcıları). PNG görüntüleri, GIF biçimindekilere göre bilgisayar ekranında daha hızlı belirir.