PNG-8 genellikle her pikselin en fazla 256 giriş içeren bir palete işaret ettiği indeksli renkli bir PNG demektir. PNG-24 genellikle her piksel için 8 bit kırmızı, yeşil ve mavi örnek saklayan bir truecolor PNG demektir. PNG-8 çoğu kez düz, sınırlı renkli grafikler için uygundur; PNG-24 geçişleri ve çeşitli rengi daha iyi korur. Bu terimler resmi PNG biçim adları değil dışa aktarıcı kısaltmalarıdır, bu yüzden tek başlarına belirli bir saydamlık türünü garanti etmezler.
PNG-8 ve PNG-24 bir bakışta
| Özellik | PNG-8 kısaltması | PNG-24 kısaltması |
|---|---|---|
| Olağan renk kipi | Indexed color | Truecolor RGB |
| Piksel verisi | Bir palet girişine işaret eden indeks | Kırmızı, yeşil ve mavi örnekler |
| Renk kapasitesi | En fazla 256 palet girişi | Palet sınırı yok; RGB kanalı başına 8 bit yaklaşık 16,7 milyon kombinasyon sağlar |
| Saydamlık | Palet girişlerine bağlı isteğe bağlı alfa değerleri | Düz RGB bir saydam renk kullanabilir; tam piksel başına alfa, çoğu kez PNG-32 denen alfali truecolor gerektirir |
| Tipik güçlü yanlar | Simgeler, diyagramlar, piksel sanatı ve düz arayüz grafikleri | Geçişler, dokulu çizimler ve renkçe zengin ekran görüntüleri |
| Her zaman daha mı küçük? | Hayır | Hayır |
İndeksli PNG rengi nasıl saklar?
İndeksli bir PNG bir renk tablosu saklar ve her pikselin hangi tablo girişini kullandığını kaydeder. İndeks bit derinliği 1, 2, 4 veya 8 bit olabilir; 8 bitlik bir indeks en fazla 256 girişe adresleyebilir. PNG belirtimi bunu resmi olarak PNG-8 adını taşıyan ayrı bir biçim değil, indexed-color kipi olarak tanımlar.
Kaynak paletin tutabileceğinden fazla renk içeriyorsa kodlayıcı onu kuantize etmelidir. Kuantizasyon temsili renklerden küçültülmüş bir küme seçer ve özgün pikselleri onlara eşler. Basit bir simgede neredeyse görünmez çalışabilir; bir gökyüzü geçişi, yumuşak gölge veya kenarı yumuşatılmış çizim ise belirgin bantlar ya da değişmiş kenarlar geliştirebilir.
Dithering, eksik tonları yakındaki palet renklerini ince bir desende dizerek gizler. Normal izleme boyutunda bir geçişi daha pürüzsüz gösterebilir ama yakından bakınca gren görülebilir. Bu ek çeşitlilik piksel akışını daha az sıkıştırılabilir de yapabilir.
PNG-24 aslında ne saklar?
Tipik bir PNG-24, sıkıştırmadan önce piksel başına 24 renk biti vererek her RGB kanalı için bir 8 bit örnek saklar. Görüntüyü ortak bir palete indirgemesi gerekmez; ince geçişleri ve çok sayıda ayrı rengi daha öngörülebilir biçimde korur.
PNG sıkıştırması kayıpsızdır: kod çözme saklanan örnekleri tam olarak geri getirir. Bu, dönüştürülmüş bir PNG-8'in özgününe özdeş kaldığı anlamına gelmez; palet kuantizasyonu yeni indeksli örnekler kaydedilmeden önce olur. Bir kez oluşturulduktan sonra indeksli PNG'nin kendisi ek kayıp olmadan çözülür. Bu ayrım için kayıpsız PNG sıkıştırmasının neyi değiştirdiğine ve neyi koruduğuna bakın.
Saydamlık ve PNG-32 etiketi
PNG-8'in yalnız tümüyle saydam veya tümüyle opak pikselleri desteklediği iddiası eksiktir. İndeksli bir PNG, her palet girişine bir alfa değeri atayan bir tRNS tablosu içerebilir. Bu kısmi saydamlığa izin verir ama aynı palet girişini kullanan pikseller onun renk ve alfa değerini paylaşmalıdır. Karmaşık yumuşak kenarlar bu yüzden çok sayıda palet girişi tüketebilir veya kötü kuantize olabilir.
Olağan truecolor RGB her piksel için tam bir alfa örneği içermez. Alfalı truecolor ayrı bir PNG renk türüdür ve çoğu kez 24 renk bitini 8 alfa bitiyle birleştirdiği için “PNG-32” diye etiketlenir. Dışa aktarma uygulamaları bu pazarlama etiketlerini tutarlı kullanmaz. PNG-24 denen bir menü seçeneği alfali RGB üretebilir, bir başkası üretmeyebilir.
Dama deseni dosyanın saydamlık içerdiğinin kanıtı değildir. Düzenleyiciler ve görüntüleyiciler saydam alanların arkasına arayüz süsü olarak dama çizer ama desen opak piksellere de işlenmiş olabilir. Görüntüyü iki zıt arka planın üzerine koyun veya alfa verisini inceleyin. Saydam PNG arka planlarının nasıl çalıştığı bu ayrımı daha ayrıntılı ele alır.
PNG-8 neden her zaman daha küçük değildir?
PNG-8 birçok durumda piksel başına daha az bitle başlar ama son boyut yalnız nominal renk derinliğine bağlı değildir. İndeksli bir dosyanın bir palete ve belki bir saydamlık tablosuna ihtiyacı vardır. Çok küçük bir görüntüde bu ek yük, azalan piksel verisinden ağır basabilir. Bir kodlayıcı, görüntü çok daha az renk gerektirse de 8 bitlik indeks kullanabilir.
Sıkıştırma yalnız renk sayısına değil desenlere tepki verir. Uzun, öngörülebilir dizileri olan temiz bir truecolor görüntü verimli sıkışabilir; agresif dithering hızla değişen indeksler getirip kötü sıkışabilir. PNG satır filtreleri, Deflate stratejisi, metadata ve kodlayıcı uygulaması da sonucu etkiler. İyi optimize edilmiş bir truecolor PNG, kötü kodlanmış veya ağır dither edilmiş indeksli bir sürümü ara sıra geçebilir.
Pratik bir dışa aktarma kontrol listesi
- İçeriği inceleyin: düz dolgular ve tekrarlayan renkler indeksli PNG'yi; geçişler, dokular ve yumuşak ışık truecolor'u destekler.
- Saydamlığı kontrol edin: saydamlık yok, tek saydam renk, palet alfası veya bağımsız piksel başına alfa gerekip gerekmediğini doğrulayın.
- Makul alternatifleri dışa aktarın: sonucu yalnız PNG-8, PNG-24 veya PNG-32 menü etiketinden çıkarmayın.
- %100 yakınlaştırmada karşılaştırın: geçişleri, küçük yazıyı, kenarı yumuşatılmış eğrileri, gölgeleri ve yarı saydam kenarları inceleyin.
- Gerçek arka planları test edin: saydam varlıkları açık, koyu ve doygun renklerin üzerinde önizleyin.
- Gerçek baytları karşılaştırın: görsel gereksinimi karşılayan en küçük adayı tutun, yalnız en düşük nominal bit sayısına sahip olanı değil.
- Gereksiz metadata'yı kaldırın. Bunu yalnız iş akışı gömülü profiller, metin veya başka yan bilgi gerektirmediğinde yapın.
Çalışma kuralı olarak bilinçli sınırlı renkli sanat için indeksli PNG ile, nüanslı raster görüntü için truecolor veya alfali truecolor ile başlayın. Sonra hem görünümü hem dosya boyutunu doğrulayın. Son yanıtı dışa aktarma etiketi değil kodlanmış dosya verir.
Tekrarlanabilir bir PNG-8 ve PNG-24 dışa aktarma kontrolü
- Tek bir özgün görüntüyle başlayın. Çözünürlüğün karşılaştırmayı bozmaması için iki dışa aktarmada piksel boyutlarını aynı tutun.
- Palet tabanlı sürümü ve truecolor sürümü dışa aktarın. Daha küçük renk derinliğinin her zaman daha küçük dosya ürettiğini varsaymak yerine gerçek dosya boyutunu kaydedin.
- Geçişleri, küçük yazıyı ve yumuşak kenarları %100 yakınlaştırmada inceleyin. Sonra ikisini de amaçlanan görüntüleme boyutunda görün.
- Saydam sonuçları beyaz, koyu ve renkli arka planlara koyun. Kaybolan kenar ayrıntısı veya istenmeyen opak pikseller arayın.
- Okurlarınızın ihtiyaç duyduğu ayrıntıları koruyan en küçük dışa aktarmayı seçin ve ilerideki düzenlemeler için özgününü saklayın.
Dışa aktarma iletişim kutusunun ekran görüntüsü, oluşan dosyanın renk modelinin kanıtı değildir. Dışa aktarma etiketleri araçlar arasında değişir. PNG belirtimi indexed-color, truecolor ve alfa taşıyan biçimleri ayırır; bir ön ayar adından çok dosyanın gerçek özellikleri önemlidir.
Dört pikselli bir saydamlık örneği
Dört pikselli tek satırlık bir görüntü düşünün: opak kırmızı, yarı saydam kırmızı, opak mavi ve saydam mavi. İndeksli bir PNG bu dört renk-ve-alfa kombinasyonunu temsil etmek için dört palet girişi ister; yalnız iki RGB rengi görünse bile. Saydamlık tablosu bu girişlere 255, 128, 255 ve 0 alfa değerleri atayabilir. Alfalı truecolor bir PNG her pikselin RGB ve alfasını doğrudan saklar. Bu kurulmuş örnek saklama farkını açıklar; bir dosya boyutu ölçümü değildir.
