Ekipten zanaat, formatlar ve iyi bir yuvarlak kırpmanın arkasındaki küçük kararlar hakkında notlar.
Kayıpsız kap, PNG neyi saklar
DEFLATE adı verilen kayıpsız yöntem, PNG'nin dayanağıdır. Bu yöntem her noktanın RGBA sayılarını hiç eksiltmeden döker, satır satır geri alınabilir bir süzgeçten geçirir ve ardından hepsini zlib soyundan bir akışta toparlar. Burada kayıpsızlık şu anlama gelir: geri açtığınızda elinize geçen sayılar, başta verdiklerinizle birebir örtüşür. JPG'yi PNG yaparken başta verilenler, tarayıcının JPEG'i çözüp size sunduğu noktalardır, ki bunlar ilk JPEG kaydının soktuğu her tahmini çoktan içinde barındırır. Böylece PNG, çekilen asıl manzarayı değil, o tahminleri harfiyen tutar. Sayılara bakarsak, 1024x768'deki 17 KB'lık bir JPEG, PNG biçiminde 105 KB civarına yerleşir, 3840x2160'taki 116 KB'lık biriyse 384 KB sınırına dayanır. Bu oranlar JPEG'in kalite kademesinden çok piksel sayısına bağlı olduğu için farklı görsellerde aşağı yukarı aynı kalır. Kabın asıl marifeti bir şeyi geri vermek değil, çöküşün önünü kesmektir.
JPEG kalitesi neden geri getirilemez
JPEG bilgiyi temelli döker. Sıkıştırması 8x8 blokların üzerinde bir kosinüs dönüşümü çalıştırır, frekans katsayılarını daha kaba bir kümeye yuvarlar ve o yuvarlanmış sayıları saklar. O yuvarlama yalnızca tek yöne gider, dolayısıyla 50'ye iliştirilmeden önce 47 okunan bir katsayı asla geri itelenemez ve dosya o 47'nin hiçbir hatırasını tutmaz. JPEG'i çözmek pikselleri yuvarlanmış katsayılardan yeniden kurar, ki bunlar özgünlerin tahminleridir. O tahminleri PNG'ye sarın, kusurlu bir resmin kusursuz bir kopyasını alırsınız. Bunların hiçbiri PNG'nin ya da Araluma'nın bir eksiği değil, kayıplı sıkıştırmanın işleyişidir: kayıt anında düşen ne varsa düşmüş kalır. Daha iyi JPEG kalitesine giden tek yol, sıkıştırılmamış kaynağa ya da RAW dosyaya geri dönmektir.
Ölçülen dosya boyutu büyümesi
Bir JPG'nin PNG'ye giderken ne kadar şişeceği resme bağlıdır, ama eğilim istikrarlıdır. Zengin ton geçişli yoğun fotoğraflar en çok büyür, çünkü JPEG'in üstün sıkıştırdığı malzeme tam da budur, PNG'nin kayıpsız kodlayıcısı ise böyle gürültülü piksellerde adımına yetişemez. Bu aracın kendi testlerinden, 1024x768'deki 17 KB'lık bir JPEG fotoğraf 105 KB'lık bir PNG olur, kabaca altı katlık bir sıçrama, 3840x2160'taki 116 KB'lık bir JPEG fotoğraf ise 384 KB'lık bir PNG olur, kabaca 3,3 kat daha büyük. Ekran görüntüleri ve simgeler gibi düz malzeme JPEG'e baştan kötü uyar ve orada daha çok ağırlık taşıma eğilimindedir, dolayısıyla PNG'si daha az keskin büyür. Ders açıktır: daha küçük bir çıktının peşindeyseniz, bir JPG'yi bir PNG'ye çevirmek sizi yanlış yöne iter.
Saydamlık, yetenek ile içerik karşılaştırması
Sekiz bitlik alfa, PNG kabının sunduğu bir olanaktır ve her noktaya, baştan sona berrak için sıfırdan baştan sona dolu için iki yüz elli beşe kadar uzanan bir görünmezlik payı tanır. Görüntü motoru bir JPG'yi PNG'ye yeniden kurarken bütün noktalar iki yüz elli beşte, yani büsbütün opak biçimde çıkar, çünkü kaynaktaki JPG'de aktarılacak hiçbir saydamlık zaten yoktu. Kap o alfa bilgisini barındırmaya hazırdır, gel gör ki dosya hiçbirini içermez, zira başlangıçta hiçbiri mevcut değildi. Resme saydamlık katmak başka bir adım ister, ister bir düzenleyicide fonu elle örtmek, ister kendiliğinden çalışan bir fon temizleyici kullanmak. Konuyu tanımaya göre ayarlanmış böyle bir temizleyici, dönüştürmenin ardından çevredeki noktaların görünmezlik payını sıfıra indirerek size gerçekten alfa taşıyan bir PNG verebilir.
EXIF üst veri işleme
Dosya yeniden kurulurken EXIF, IPTC ve XMP etiketleri her tarayıcıda PNG'den düşer, JPG'nin tuttuğu GPS koordinatlarını, kamera gövdesini, çekim tarihini, telif metnini ve her özel XMP'yi de yanında götürür. Renk profilleri biraz ayrışır. Chrome ve Safari çıktıda sRGB etiketini korur, Firefox ise onu geri kalan her şeyle bırakır. Yani PNG'yi nerede açarsanız açın sRGB güvenlidir, gerçi Display-P3 ya da Adobe RGB gibi geniş gamlı bir profil Firefox'tan sağ çıkmaz. Sıradan web ve paylaşım için etiketleri düşürmek bir artıdır, biraz ağırlık kırpar ve fotoğraflarınızdan konum verisini söker. Gömülü üst verisini koruması gereken profesyonel ya da arşiv işleri için, o zinciri dönüştürmeden önce ya da sonra amaca özel bir araçla yönetin.
Gizlilik ve işin nereye düştüğü
İşin nereye düştüğü miktara bağlıdır. Tek bir görsel için hiçbir şey tarayıcıdan çıkmaz ve bunu saniyeler içinde canlı kontrol edebilirsiniz. Chrome DevTools'u açın, Ağ paneline geçin, XHR ve Fetch ile filtreleyin ve bir dosya dönüştürün. Kodlama çalışırken hiçbir şey görünmez. İki veya daha fazlası için Araluma onları sunucumuza gönderir, sunucu dönüştürür, sonucu toplar ve bir indirme bağlantısı döndürür. Bu bağlantı ve dönüştürülen dosyalar yaklaşık 2 saat içinde silinir. Tek görsel yolu her şeyi cihazda, ağ dışında tutar, bir grup ise bunu birçok dosyayı tek seferde bitirmekle değişir. Özel bir şeyin ekran görüntüsü ya da konumunuzla işaretli bir fotoğraf için teker teker dönüştürmek onu makinenizde tutar, gerçek bir fark, slogan değil.