PDFMove
PNG'den BMP'ye Dönüşümde Şeffaflığa Ne Oluyor?
Rehber

PNG'den BMP'ye Dönüşümde Şeffaflığa Ne Oluyor?

4 dk okuma

Dönüşümün asıl konusu

PNG'den BMP'ye geçişte insanların en çok merak ettiği şey genellikle dosya boyutu olur — ve haklı olarak, çünkü fark çarpıcıdır. Ama boyut öngörülebilir bir sonuçtur; sürprizi olmayan, matematiksel bir artıştır.

Asıl sürpriz şeffaflıkta yaşanır. Şeffaf bir PNG'yi BMP'ye çevirip hedef sistemde açtığınızda, beklemediğiniz bir arka planla karşılaşmanız oldukça olasıdır. Bu yazı tam olarak orada ne olduğunu anlatıyor.

Alfa kanalı nedir?

PNG'de her pikselin renk bilgisinin yanında bir de opaklık bilgisi bulunabilir. Buna alfa kanalı denir. Değer tamamen saydamdan tamamen opağa kadar bir aralıkta olabilir; yani bir piksel tam görünür, tam görünmez veya yarı saydam olabilir.

Bu ara değerler önemlidir. Bir logonun kenarındaki eğri çizgiler tırtıklı görünmesin diye yarı saydam piksellerle yumuşatılır. Bir gölge efekti kademeli olarak saydamlaşır. Yani alfa kanalı sadece "arka plan yok" demek değil, görüntünün nasıl harmanlanacağının tarifidir.

BMP tarafındaki belirsizlik

BMP'nin 32 bit BGRA varyantı piksel başına bir alfa baytı barındırabilir. Yani spesifikasyon açısından şeffaflık taşınabilir görünür.

Pratikte ise durum karışıktır. Bu desteği okuyucu uygulamalar arasında tutarsızdır:

  • Bazı programlar alfa baytını doğru yorumlar ve şeffaflığı gösterir.
  • Birçok program alfa baytını tamamen görmezden gelir ve görüntüyü opak olarak çizer.
  • Bazı yazılımlar o baytı hiç beklemediğiniz şekilde ele alır.

Bu belirsizlik, BMP'nin ilk tasarım felsefesinden kaynaklanır. Format basitlik için yaratıldı; alfa desteği sonradan eklenen bir uzantı gibi kaldı ve hiçbir zaman evrensel bir beklenti hâline gelmedi.

Sonuç şudur: dosyanızın şeffaflık bilgisi taşıması, hedef programın onu kullanacağını garanti etmez. Ve zaten BMP'ye dönüştürmenizin sebebi genellikle eski bir sistem olduğu için, o sistemin alfa desteklemediğini varsaymak istatistiksel olarak değil, mantıken doğrudur.

Şeffaf alanlar neye dönüşür?

Alfa yok sayıldığında saydam bölgeler düzleştirilir, yani opak bir renkle doldurulur. Hangi renkle dolacağı sabit değildir:

  • Beyaz, en sık karşılaşılan varsayılan.
  • Siyah, bazı araç ve okuyucularda.
  • Beklenmedik bir renk, çünkü alfa yok sayıldığında pikselin altında saklı duran renk verisi ortaya çıkabilir.

Bu belirsizlik özellikle şu senaryoda can sıkıcı olur: şeffaf bir logoyu koyu bir panelde kullanmak istiyorsunuz, dönüştürüyorsunuz ve cihazda logonun etrafında beyaz bir dikdörtgen beliriyor.

Yarı saydam kenarların gizli sorunu

Düzleştirmenin daha az bilinen ama daha sinsi bir yan etkisi var.

Bir logonun eğri kenarlarındaki yarı saydam pikseller, düzleştirme sırasında altlarındaki arka plan rengiyle harmanlanır. Beyaz bir arka planda düzleştirilen bir logo, kenarlarında beyaza doğru açılan bir geçiş taşır.

O logoyu koyu bir panelde kullandığınızda kenarlardaki bu açık geçiş orada kalır ve etrafında ince bir hale olarak görünür. Görüntü tamamen bozuk değildir ama profesyonel de görünmez ve sebebini bulmak zordur, çünkü dosya "doğru" görünmektedir.

Bu yüzden düzleştirme rengini doğru seçmek, sadece arka planı değil kenar kalitesini de belirler.

Doğru yöntem: kontrolü kendinize alın

Belirsizliği ortadan kaldırmanın yolu, kararı araca bırakmamaktır.

Dönüşümden önce arka planı kendiniz doldurun. Görseli bir düzenleyicide açın, altına hedefte kullanılacak renkte düz bir katman koyun ve düzleştirin. Artık şeffaflık yoktur; görsel tam olarak istediğiniz gibidir ve PNG'den BMP'ye dönüştürdüğünüzde hiçbir sürpriz yaşamazsınız.

Bu yaklaşımın üç faydası var:

  • Arka plan rengi kesin olarak sizin seçiminizdir.
  • Yarı saydam kenarlar doğru renkle harmanlanır, hale sorunu oluşmaz.
  • Hedef sistemin alfa destekleyip desteklemediği artık önemsizdir.

Şeffaflığın korunması şartsa

Bazı durumlarda şeffaflık gerçekten gereklidir — bir arayüz elemanı değişken arka planlar üzerinde gösterilecekse düz bir arka plan işe yaramaz.

Bu durumda seçenekler şunlar:

PNG'de kalın. Hedef sistem PNG kabul ediyorsa dönüşüm yapmaya hiç gerek yok. PNG alfa kanalını eksiksiz ve tutarlı biçimde destekler.

Hedef sistemin kendi mekanizmasını araştırın. Bazı eski arayüzler alfa kanalı yerine farklı yöntemler kullanır: ayrı bir maske dosyası veya belirli bir rengi şeffaf sayan anahtar renk yöntemi. Örneğin sistem "parlak macenta rengini şeffaf say" kuralıyla çalışıyor olabilir. Böyle bir mekanizma varsa görseli buna göre hazırlamak, BMP'nin alfa kanalına güvenmekten çok daha güvenilirdir.

Beklentiyi değiştirin. Bazen en pratik çözüm, tasarımı sabit bir arka planla çalışacak şekilde uyarlamaktır.

Özetle

PNG'den BMP'ye geçişte renk verisi güvenle taşınır, çünkü iki format da kayıpsızdır. Kaybolan şey şeffaflıktır ve bu kayıp geri alınamaz. BMP'nin alfa desteği spesifikasyonda var ama pratikte güvenilmez; hedef sisteminizin onu görmezden geleceğini varsayın. En temiz yol, düzleştirmeyi dönüşüm aracına bırakmak yerine kendiniz yapmak ve arka plan rengini bilinçli olarak seçmektir. Şeffaflık gerçekten şartsa, doğru cevap dönüşüm değil PNG'de kalmaktır.

Sıkça Sorulan Sorular

BMP alfa kanalını gerçekten destekliyor mu, desteklemiyor mu?

İkisi de doğru, sorun tam olarak burada. BMP'nin 32 bit BGRA varyantı piksel başına bir alfa baytı barındırabilir, yani spesifikasyon açısından şeffaflık taşınabilir. Ancak bu desteği okuyucu uygulamalar arasında tutarsızdır; birçok program alfa baytını hiç yorumlamaz ve görüntüyü tamamen opak gösterir. Bazı yazıcı yazılımları ise o baytı farklı amaçlarla kullanır. Sonuç olarak dosyanın şeffaflık bilgisi taşıması, hedef programın onu kullanacağını garanti etmez.

Şeffaf alanlar hangi renge dönüşür?

Bu, dönüşümü yapan araca ve dosyayı okuyan programa bağlıdır; sabit bir kural yoktur. En sık karşılaşılan sonuçlar beyaz veya siyah arka plandır, ama bazı durumlarda alfa yok sayıldığında altta kalan renk verisi ortaya çıkar ve beklenmedik bir görüntü oluşabilir. Belirsizliği ortadan kaldırmanın tek güvenilir yolu, dönüşümden önce arka planı kendiniz istediğiniz renkle doldurup şeffaflığı bilinçli olarak kaldırmaktır.

Şeffaf logomu koyu bir arka planda kullanacağım, ne yapmalıyım?

Dönüşümden önce logonun arka planını hedefte kullanılacak koyu renge boyayın. Şeffaf bir logoyu doğrudan BMP'ye çevirirseniz arka plan büyük ihtimalle beyaz veya siyah olur ve koyu panelin üzerinde çirkin bir dikdörtgen olarak görünür. Ayrıca şeffaf logolarda kenar pikselleri yarı saydam olur; bunlar düzleştirildiğinde hangi arka planla harmanlandıklarına göre görünür. Yanlış arka planda düzleştirilen bir logonun kenarlarında ince açık renk bir hale kalır.

Şeffaflığı korumam şartsa alternatifim ne?

En doğru alternatif dönüşüm yapmamak ve PNG'de kalmaktır; PNG alfa kanalını eksiksiz ve tutarlı biçimde destekler. Hedef sistem PNG kabul etmiyorsa, o sistemin şeffaflıkla ilgili kendi mekanizması olup olmadığını araştırın. Bazı eski arayüzler ayrı bir maske dosyası veya belirli bir rengi şeffaf sayan bir anahtar renk yöntemi kullanır. Bu mekanizmalardan biri varsa, görseli buna göre hazırlamak BMP'nin alfa kanalına güvenmekten çok daha güvenilirdir.

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

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