PDFMove
PNG'den JPG'ye Çevirimde Şeffaflık Nereye Gidiyor?
Rehber

PNG'den JPG'ye Çevirimde Şeffaflık Nereye Gidiyor?

4 dk okuma

Kaybolan şey bir ayar değil, bir kanal

Şeffaf arka planlı bir PNG'yi JPG'ye çevirip beyaz bir dikdörtgenle karşılaşmak, çevrimiçi görsel dönüştürmenin en sık şaşkınlık yaratan sonucudur. İnsanlar genellikle bunu bir ayar hatası sanır ve doğru seçeneği aramaya başlar. Oysa burada kaybolan şey bir ayar değil, formatın hiç sahip olmadığı bir veri katmanıdır.

Bu yazıda alfa kanalının ne olduğunu, JPG'de neden bulunmadığını ve dönüşüm anında saydam piksellere tam olarak ne yapıldığını açıklıyoruz.

Alfa kanalı nedir?

Bir dijital görselde her piksel renk bilgisi taşır. Yaygın gösterimde bu bilgi kırmızı, yeşil ve mavi olmak üzere üç kanaldan oluşur. PNG bu üçüne dördüncü bir kanal ekler: alfa. Alfa kanalı rengi değil, o pikselin ne kadar opak olduğunu saklar.

Alfa değeri 256 farklı seviye alabilir. Bir uçta piksel tamamen görünmezdir, arkasındaki zemin olduğu gibi görünür. Diğer uçta piksel tamamen opaktır, arkasını hiç göstermez. Aradaki değerler ise yarı saydamlığı ifade eder ve pratikte en kritik olanı bunlardır: bir logonun eğimli kenarındaki yumuşak geçiş, bir nesnenin altındaki gölge, bir cam efektinin bulanık zemini hep ara alfa değerleriyle çalışır.

Bu yüzden PNG'nin şeffaflığı "var veya yok" ikilisinden ibaret değildir. GIF'in yalnızca tam saydam ile tam opak arasında seçim yapabilen ikili şeffaflığından ayrıldığı nokta tam olarak budur.

JPG'de neden alfa kanalı yok?

JPG, fotoğrafları verimli saklamak için tasarlandı. Bir fotoğrafın arka planı olmaz; kare çerçevenin tamamı doludur. Dolayısıyla formatın tasarımında saydamlık gibi bir ihtiyaç hiç doğmadı. JPG dosya yapısında alfa kanalını saklayacak bir alan tanımlı değildir.

Bu bir yazılım eksikliği veya sonradan kapatılmış bir özellik değil, formatın kendi tasarım kararıdır. Hiçbir dönüştürücü, hiçbir ayar bunu değiştiremez. "Şeffaflığı koruyarak JPG'ye çevir" diye bir seçenek yoktur ve olamaz.

Dönüşüm anında tam olarak ne oluyor?

Dönüştürücü, PNG'yi açıp dört kanallı piksel dizisini elde eder. JPG'ye kaydetmesi için bu diziyi üç kanala indirmesi gerekir. Alfa kanalını basitçe atmak, saydam pikselleri rastgele renklerde bırakırdı; bu yüzden yapılan işlem "düzleştirme" adı verilen bir harmanlamadır.

Düzleştirme sırasında yazılım bir dolgu rengi seçer ve her pikseli kendi alfa değerine göre bu renkle karıştırır. Tamamen saydam bir piksel dolgu renginin kendisi olur. Yarı saydam bir piksel, kendi rengi ile dolgu renginin ağırlıklı ortalamasına dönüşür. Tamamen opak pikseller değişmeden kalır.

Dolgu renginin ne olacağı formatta yazmaz; yazılımın tercihidir. Görsel düzenleyicilerin ve çevrimiçi araçların büyük çoğunluğu beyaz kullanır. Bazı görüntü işleme kütüphaneleri ise saydam bölgeleri sıfır değeriyle temsil ettiği için siyah dolgu üretir. Aynı dosyayı iki farklı araçtan geçirip farklı arka plan renkleri almanız bu yüzden normaldir.

En çok nerede canını yakar?

Yumuşak kenarlı logolarda. Bir logonun eğimli kenarları kenar yumuşatma sayesinde pürüzsüz görünür ve bu yumuşatma yarı saydam piksellerle yapılır. Beyaz dolgu sonrası logo beyaz zeminde hâlâ iyi görünebilir ama koyu bir zemine koyduğunuzda kenarların çevresinde açık renkli bir hale belirir.

Gölgeli grafiklerde. Doğal görünmesi için tasarlanmış yumuşak gölgeler dolgu rengiyle harmanlanır ve artık altındaki zemine uyum sağlayamaz. Gölge, zeminden bağımsız sabit bir leke hâline gelir.

Arka planı silinmiş ürün görsellerinde. E-ticaret için silinen arka plan, JPG'ye çevrildiği anda geri gelir; bu kez beyaz bir dikdörtgen olarak. Ürünü farklı zeminlerde gösterme esnekliği tamamen kaybolur.

Neden geri alınamıyor?

Kayıp, dosya formatında değil görüntünün kendisinde gerçekleşir. Dönüşümden sonra beyaz alan artık "eskiden saydamdı" diye işaretlenmiş bir bölge değildir; görüntünün gerçek, sıradan bir parçasıdır. Dosyayı tekrar PNG'ye çevirdiğinizde bu beyaz alanı da diğer pikseller gibi kayıpsız biçimde saklarsınız.

Şeffaflığı geri kazanmanın tek yolu, arka planı yeniden silmektir. Düz ve tek renk bir dolguda bu görece kolaydır, ama yumuşak kenarlar ve gölgeler harmanlandığı için sonuç orijinali kadar temiz çıkmaz.

Doğru yaklaşım ne?

Kaynak PNG'yi hiçbir zaman silmeyin; PNG'yi JPG'ye çevirirken her zaman yeni bir dosya üretin. Şeffaflığa ihtiyacınız devam ediyorsa hedef format JPG olmamalı: WEBP hem kayıplı hem kayıpsız modda alfa kanalını destekler ve genellikle PNG'den belirgin şekilde küçük dosya verir. Görselin zemini her koşulda bilinen ve sabit bir renkse, o rengi bilinçli olarak dolgu seçmek de meşru bir çözümdür — bu durumda kayıp yaşamazsınız, sadece esnekliğinizi bırakırsınız.

Özetle

JPG'ye çevirdiğinizde şeffaflık bir yere gitmez, hiç saklanamaz. Alfa kanalı JPG'nin dosya yapısında tanımlı olmadığı için saydam ve yarı saydam pikseller bir dolgu rengiyle harmanlanır ve görüntünün kalıcı parçası hâline gelir. Beyaz mı siyah mı olacağı aracın tercihidir. Karar vermeden önce sorulacak soru şudur: bu görselin arka planı ileride farklı bir zeminde durmak zorunda mı? Cevap evet ise JPG doğru hedef değildir.

Sıkça Sorulan Sorular

Arka plan neden bazen beyaz bazen siyah çıkıyor?

JPG'de saydamlık bilgisi saklanamadığı için dönüştürücünün saydam pikselleri bir renkle doldurması gerekir ve hangi rengi kullanacağı formatın değil, yazılımın kararıdır. Çoğu çevrimiçi araç ve görsel düzenleyici beyaz kullanır çünkü belge ve web zeminlerinin çoğu beyazdır. Bazı kütüphaneler ise saydam pikselleri sıfır değeriyle temsil ettiği için sonuç siyah çıkar. Aynı dosyayı iki farklı araçla çevirip farklı sonuç almanız bu yüzden şaşırtıcı değildir.

Yarı saydam pikseller dönüşümde ne oluyor?

Yarı saydam pikseller dolgu rengiyle harmanlanır; yani yüzde elli saydam gri bir gölge, beyaz dolgu üzerinde açık gri bir tona dönüşür ve artık saydamlık bilgisi taşımaz. Bu, gölgeli logolarda ve yumuşak kenarlı grafiklerde en çok göze çarpan sorundur, çünkü görselin kenarları artık zemine karışmaz, beyaz bir hale şeklinde görünür. Koyu bir zemine yerleştirdiğinizde bu hale hemen fark edilir. Kenar yumuşatması olan her görselde bu etki bir ölçüde vardır.

Dönüştürmeden önce şeffaflığı korumanın bir yolu var mı?

JPG'ye çevirirken yoktur, çünkü format alfa kanalı tanımlamaz. Şeffaflığı koruyup dosyayı da küçültmek istiyorsanız doğru hedef WEBP'tir; hem kayıplı hem kayıpsız modda saydamlığı destekler ve genellikle PNG'den belirgin şekilde küçüktür. Alternatif olarak PNG'de kalıp görselin piksel boyutlarını gerçekten ihtiyaç duyulan ölçüye düşürebilirsiniz. Görselin nihai zemini her koşulda sabit ve bilinen bir renkse, o rengi bilerek dolgu olarak kullanmak da kabul edilebilir bir çözümdür.

JPG'yi tekrar PNG yaparsam şeffaflık geri gelir mi?

Gelmez. Format dönüşümü sadece verinin nasıl paketlendiğini değiştirir, silinmiş bilgiyi yeniden üretmez. JPG'de her piksel artık opaktır ve dolgu rengi görüntünün gerçek bir parçası hâline gelmiştir; PNG'ye çevirdiğinizde o beyaz alan da kayıpsız olarak saklanır. Şeffaflığı geri kazanmak için arka planı yeniden silmeniz, yani ayrı bir arka plan kaldırma işlemi uygulamanız gerekir.

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

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