Ekipten zanaat, formatlar ve iyi bir sonucun arkasındaki küçük kararlar hakkında notlar.
Fotoğraf içerikli PNG'ler neden bu kadar büyük
Kayıpsız PNG sıkıştırması her pikseli tam olarak saklar. Milyonlarca hafifçe değişen tona sahip fotoğraf içerikli bir görselde bu çok büyük dosyalar üretir, çünkü komşu pikseller arasında tekilleştirilecek ya da tahmin edilecek neredeyse hiçbir şey yoktur. Tipik bir 1600x1200 fotoğraf büyük bir PNG olarak kaydedilir. Aynı görsel kalite 85'te bir JPEG olarak 200 ila 'a oturur. Bu fark, JPEG'in kalbindeki ayrık kosinüs dönüşümünden gelir, bu dönüşüm 8x8 piksel bloklar halinde çalışır, insan görsel sisteminin en az duyarlı olduğu yüksek frekanslı ayrıntıyı atar ve kalan katsayıları sıkıca kodlar. Sonuç, sürekli ton değişimi olan her görsel için çok daha küçük bir dosyadır, ki bu temelde her fotoğraftır. PNG'nin kayıpsız güvencesi grafikler ve çalışma dosyaları için değerlidir, ancak paylaşıma giden fotoğraflar için yanlış bir kaptır.
Saydamlık ve alfa kanalı
PNG tam bir 8 bitlik alfa kanalını destekler, yani her piksel tamamen saydamdan tamamen opağa kadar herhangi bir değerde olabilir. JPG hiçbir alfa bilgisi tanımlamaz, çünkü kabının piksel başına saydamlık için bir alanı yoktur. Platformun görsel motoru bir PNG'yi JPEG'e yeniden kaydederken, kayıt adımından önce alfa kanalını bir arka plan rengine yerleştirir. Varsayılan arka plan beyazdır, bu yüzden bir PNG'deki saydam alanlar sonuçtaki JPG'de beyaz görünür. Kilit nokta, hiçbir aracın saydam bir JPG üretemeyeceğidir, çünkü biçim bu kavramı desteklemez. Kesimi korumak önemliyse, yanıt WebP ya da PNG'yi korumaktır. RoundCut düzleştirme rengi olarak beyazı seçer, çünkü çoğu belge ve ürün listesinin arka planıyla uyumludur.
Ölçülen kayıt başarımı
Chrome 148, Linux masaüstünde, platformun JPEG kayıt yolu kullanılarak ölçülmüştür. Bir 400x300 görsel (0,12 MP) kabaca 10 ila 15 milisaniyede kaydedilir. Bir 1024x768 görsel (0,78 MP) yaklaşık 13 ila 20 milisaniyede kaydedilir. Bir 3840x2160 görsel (8 MP) kabaca 1,4 saniyede kaydedilir. Bir 8000x6000 görsel (48 MP) yaklaşık 1,5 saniyede kaydedilir. Tarayıcıda JPEG kaydı aynı görsel için PNG kaydından önemli ölçüde hızlıdır ve AVIF'ten çok daha hızlıdır, ki AVIF ayrı bir modül gerektirir ve masaüstü Chrome'da bile 48 MP'de 25 saniye alabilir. Bu hız avantajı, PNG'den JPG'yi bu ailedeki en hızlı dönüştürme yollarından biri yapar ve ek indirme maliyeti yoktur çünkü JPEG kaydı her tarayıcının içine yerleşiktir.
EXIF ve üst veri işleme
Yeniden kayıt hattı, çıktı JPG'sinden EXIF, IPTC ve XMP üst verilerini her tarayıcıda temizler. Bu, kaynak PNG'de bulunan konum koordinatları, kamera modeli, çekim tarihi, telif hakkı bildirimi ve her türlü özel alanın kaldırıldığı anlamına gelir. ICC renk profilleri farklı bir yol izler, burada Chrome ve Safari sRGB ICC profilini çıktıda korurken Firefox onu tamamen temizler. Pratik sonuç, dönüştürülen JPG'nin tüm tarayıcılarda sRGB güvenli olmasıdır, ancak PNG'niz Display-P3 ya da Adobe RGB gibi geniş bir renk uzayı profiliyle etiketlendiyse, o etiket Firefox'ta hayatta kalmaz. Tam üst veriyi korumak bir iş akışı gereksinimiyse, dönüştürmeden sonra ona özel bir araçla düzenleyin. Tipik web ve paylaşım kullanımı için üst veri kaldırma yararlıdır, çünkü dosyayı biraz küçültür ve fotoğraflardan GPS verisini düşürür.
JPG bozulmaları ne zaman görünür
JPEG sıkıştırması 8x8 piksel bloklar üzerinde çalışır. Kaynak görsel tek bir blok içinde çok farklı iki renk arasında sert bir geçiş içerdiğinde, JPEG sıkıştırma adımı o geçişi sınırlı frekans katsayılarıyla yaklaşık olarak verir. Sonuç halkalanmadır, kenarın etrafında daha açık ya da daha koyu piksellerden oluşan bir hale. Fotoğraflarda bu görünmezdir, çünkü kenarlar asla tam olarak keskin değildir ve gerçek dünya fotoğrafları o yaklaşımla iyi eşleşen mikro değişimler taşır. Sert kenarlı ekran görüntülerinde, logolarda, sert kenarlı arayüz ögelerinde, metinde ya da bitişik düz renk bloklarında halkalanma her kalite ayarında açıkça görünür, çünkü bu ögeler tam olarak algoritmanın kötü işlediği türden sinyallerdir. Tavsiye basittir, ekran görüntülerini, logoları ya da metin ağırlıklı görselleri JPG'ye dönüştürmeyin. Onları PNG olarak tutun ya da sorunu tamamen önleyen daha küçük bir dosya için WebP kullanın.
Pratikte gizlilik
Dönüştürmenin nerede olduğu dosya sayısına bağlıdır. Tek bir görsel için hiçbir veri tarayıcıdan çıkmaz ve bu gerçek zamanlı olarak doğrulanabilir. Chrome Kodlama sırasında liste boş kalır. İki veya daha fazla dosya için RoundCut onları sunucumuza gönderir, sunucu dönüştürür, sonucu paketler 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 tamamen cihazınızda, ağ dışında çalışır, grup yolu ise bunu birçok dosyayı tek seferde dönüştürmenin rahatlığıyla değişir. Kişisel bir belgenin ekran görüntüsü ya da konum verisi taşıyan bir fotoğraf gibi hassas içerikli görsellerde teker teker dönüştürmek her şeyi yerel tutar.