PDFMove
GIF'in 256 Renk Sınırı ve PNG'ye Geçiş
Rehber

GIF'in 256 Renk Sınırı ve PNG'ye Geçiş

4 dk okuma

256 sayısı nereden geliyor

GIF'i anlamak için önce nasıl saklama yaptığını anlamak gerekiyor, çünkü formatın bütün karakteri buradan çıkıyor.

GIF palet tabanlıdır. Dosyanın içinde bir renk tablosu bulunur. Her piksel, kendi renk değerini taşımak yerine, bu tablodaki bir girdinin numarasını taşır. Yani piksel "kırmızı" demez, "tablodaki 47 numaralı renk" der.

Bu indeks her piksel için 8 bitle ifade edilir. 8 bit en fazla 256 farklı değer alabilir. Dolayısıyla bir GIF karesinde en fazla 256 farklı renk bulunabilir.

Bu bir kalite ayarı veya sıkıştırma tercihi değildir. Formatın veri yapısına yerleşmiş katı bir sınırdır. Paletteki 256 rengin hangileri olacağını seçebilirsiniz — bir yeşil ağırlıklı manzara için farklı, bir mavi ağırlıklı deniz fotoğrafı için farklı bir palet üretilir — ama sayıyı artıramazsınız.

Sınırın fotoğraflarda yarattığı iki bozulma

Grafik ve logo gibi az renkli içeriklerde 256 renk fazlasıyla yeterlidir. Sorun fotoğraflarda başlar, çünkü tipik bir fotoğrafta on binlerce farklı renk tonu bulunur. Bunu 256'ya indirgemek iki karakteristik bozulma üretir.

Bantlaşma. Gökyüzü, ten rengi, gölge geçişleri gibi yumuşak gradyanlarda ara tonlar kaybolur. Kesintisiz olması gereken geçiş, birbirinden görünür şekilde ayrılan renk şeritlerine dönüşür. Bir gün batımı fotoğrafında bunu en net şekilde görürsünüz.

Dithering. Bantlaşmayı gizlemek için kullanılan telafi tekniğidir. Paletteki iki rengi noktalı bir desen halinde serpiştirerek, uzaktan bakıldığında ara ton izlenimi yaratılır. Uzaktan işe yarar ama görüntüye kumlu, noktalı bir doku kazandırır. Yakından bakıldığında veya görsel büyütüldüğünde bu desen açıkça görünür hale gelir.

Bu iki bozulma birlikte, GIF'in fotoğraflar için neden kötü bir taşıyıcı olduğunu açıklar. Format hiçbir zaman fotoğraf için tasarlanmadı; basit grafikler, çizimler ve kısa animasyonlar içindi.

PNG neyi çözer, neyi çözmez

PNG palet sınırı olmadan çalışır. Her piksel için doğrudan RGB değerlerini saklayabilir, yani milyonlarca farklı rengi taşıyabilir.

Buradan yola çıkarak "GIF'i PNG'ye çevirirsem renkler düzelir" sonucuna varmak çok yaygın bir yanılgı. Gerçek şu:

PNG mevcut 256 rengi kusursuz korur. Dönüşümde hiçbir kayıp olmaz, çıktı piksel piksel orijinalin aynısıdır. Bu iyi haber.

PNG kaybolmuş renkleri geri getiremez. GIF üretilirken kaynak görsel 256 renge indirgendiğinde, o anda atılan on binlerce ton kalıcı olarak gitti. Bu bilgi GIF dosyasında hiç bulunmuyor. PNG olmayan bir şeyi okuyamaz.

Sonuç olarak bantlaşma PNG çıktısında aynen kalır. Dithering deseni aynen kalır. Görüntü daha zengin renkli hale gelmez, sadece daha yetenekli bir kaba taşınmış olur.

Gerçek renk zenginliğine ulaşmanın tek yolu, GIF'in üretildiği orijinal kaynak dosyaya geri dönmektir. O varsa, doğrudan oradan PNG veya WEBP üretin — GIF üzerinden dolaşmayın.

Şeffaflıkta da benzer bir sınır var

GIF'in renk sınırının yanında bir de şeffaflık sınırı vardır ve bu da aynı mantıkla çalışır.

GIF'in şeffaflığı ikilidir: bir piksel ya tamamen saydamdır ya da tamamen opaktır. Arada hiçbir değer bulunmaz. Paletteki bir renk "saydam" olarak işaretlenir ve o rengi taşıyan pikseller görünmez olur, o kadar.

Bunun pratik sonucu, yuvarlak ve eğimli kenarlarda merdiven basamağı görünümüdür. Bir logo GIF'inin kenarları hep tırtıklıdır çünkü format yumuşak geçişe izin vermez.

PNG'nin alfa kanalı ise her piksel için 256 farklı saydamlık seviyesi saklayabilir. Tam görünürden tam görünmeze yumuşak geçişler mümkündür.

Ama tıpkı renklerde olduğu gibi, bu yetenek geriye dönük çalışmaz. PNG size yumuşak kenar üretme imkanı verir; GIF'ten gelen tırtıklı kenarları kendiliğinden düzeltmez. Yarım saydamlık bilgisi kaynak dosyada hiç yoktu, PNG onu icat edemez.

O halde dönüşüm ne kazandırır

Kazanç geçmişi onarmakta değil, ilerisi için sınırları kaldırmakta.

Palet baskısı biter. GIF üzerinde düzenleme yapıp kaydettiğinizde, eklediğiniz her yeni renk paleti zorlar ve dosya yeniden 256 renge sıkıştırılır. Her kayıt bir öncekinin üzerine yeni indirgeme ekler. GIF'i PNG'ye çevirdikten sonra bu baskı ortadan kalkar; istediğiniz kadar renk ekleyip defalarca kaydedebilirsiniz.

Yumuşak şeffaflık mümkün hale gelir. Kenarları elle düzeltip yarım saydam geçişler oluşturabilirsiniz. GIF'te bu teknik olarak imkansızdı.

Uyumluluk artar. Modern düzenleyiciler ve sistemler PNG'yi doğrudan RGB olarak açar. GIF'in palet yapısı bazı araçlarda ek dönüşüm adımları ve beklenmedik davranışlar üretir.

Özetle

GIF'in 256 renk sınırı formatın veri yapısına gömülüdür ve fotoğraflarda bantlaşma ile dithering olarak kendini gösterir. PNG bu sınırı taşımaz, ama elinizdeki GIF'te olmayan renkleri de üretemez. Dönüşüm mevcut görüntüyü kusursuz korur ve bundan sonrası için palet ve şeffaflık kısıtlarını kaldırır. Renkleri gerçekten geri istiyorsanız aranacak yer dönüştürücü değil, orijinal kaynak dosyadır.

Sıkça Sorulan Sorular

GIF neden sadece 256 renk destekliyor?

GIF palet tabanlı bir formattır; dosyada bir renk tablosu tutulur ve her piksel gerçek renk değeri yerine bu tablodaki bir girdinin numarasını taşır. Format tasarlandığında her piksel için 8 bitlik bir indeks ayrılmıştır ve 8 bit en fazla 256 farklı değer ifade edebilir. Bu, formatın yapısına yerleşmiş katı bir sınırdır, bir ayar veya kalite tercihi değildir. Renk tablosundaki 256 rengin hangileri olacağı seçilebilir ama sayı değiştirilemez.

Dithering nedir ve neden GIF'lerde görülür?

Dithering, sınırlı bir palette daha fazla renk varmış izlenimi yaratmak için pikselleri noktalı bir desen halinde karıştırma tekniğidir. Örneğin paletinizde ara tonlar yoksa, iki mevcut rengi serpiştirerek uzaktan bakıldığında ara ton izlenimi verirsiniz. GIF'in 256 renk sınırı bu tekniği zorunlu kılar, özellikle fotoğraflarda. Sonuç uzaktan kabul edilebilir görünür ama yakından bakıldığında görüntü kumlu ve noktalı bir doku kazanır.

PNG'ye çevirince renkler geri gelir mi?

Hayır. PNG milyonlarca rengi saklayabilir ama elinizdeki GIF dosyasında zaten yalnızca 256 renk vardır. PNG bu 256 rengin tamamını kusursuz biçimde korur, ancak GIF üretilirken atılan renkleri geri üretemez çünkü o bilgi dosyada hiç bulunmuyor. Bantlaşma ve dithering desenleri PNG çıktısında aynen kalır. Gerçek renk zenginliğine ulaşmanın tek yolu, GIF'in üretildiği orijinal kaynak görsele geri dönmektir.

O zaman GIF'i PNG'ye çevirmenin ne anlamı var?

Anlamı, dosyayı bundan sonrası için daha yetenekli bir kaba almaktır. PNG palet sınırı olmadan çalışır, dolayısıyla görsele yeni renkler ekleyip düzenleme yapabilirsiniz; GIF üzerinde çalışsaydınız her kayıtta palet yeniden 256 renge sıkıştırılacaktı. Ayrıca PNG'nin alfa kanalı yumuşak şeffaflık geçişlerine izin verir ve PNG modern düzenleyicilerde RGB olarak sorunsuz açılır. Kazanç geçmişi onarmakta değil, ilerisi için sınırları kaldırmakta.

Bu konuyu GIF → PNG Dönüştür aracıyla hemen deneyin.

GIF → PNG Dönüştür aracını dene