"PNG sıkıştırma" arattığınızda üst sıralardaki araçlar kendi kendilerini "kayıpsız" ve "kaliteyi korudu" olarak övüyor. Peki neden sıkıştırma oranları aralarında çok fark var?
Farkın sebebi, "kayıpsız" dedikleri şeyin aslında aynı şey olmadığındadır.
Bu makale bu farkı netleştirecek, ardından kullanım senaryolarına göre araçları önerecektir.
Önce netleştirelim: İki "kayıpsız" türü
Gerçek Kayıpsız: Pikseller hiçbir şekilde değişmez
PNG zaten kayıpsız bir formattır. Boyutu iki şeyden belirler: Piksel verilerinin nasıl düzenlendiği ve Deflate sıkıştırma nasıl kullanıldığı, ve dosyaya gömülü meta veri miktarı.
Gerçek kayıpsız sıkıştırma sadece bu iki yerde çalışır:
- Daha az yer kaplayan bir saklama yöntemine geçiş. Örneğin resimde aslında sadece 200 renk kullanılıyorsa, palet moduna geçilir; yarı saydam yoksa Alpha kanalı çıkarılır; gri tonlamalıysa gri tonlamalı olarak saklanır.
- Daha iyi filtreler ve Deflate parametreleri deneme. Aynı pikseller için farklı kodlama yöntemleri, çıktı boyutunda ciddi farklar yaratabilir. Tasarım araçları PNG dışalarken hız önceliklidir, bu yüzden genellikle ciddi deneme yapmazlar.
- Meta verileri kaldırma. Dışa aktarma yazılım bilgileri, zaman damgaları, metin notları, küçük resimler vb.
Sıkıştırılmış görüntü, orijinal görüntüyle piksel piksel tam olarak aynıdır. Ödül ise sınırlıdır; sadece "yetersiz kodlama" kısmındaki fazlalıkları sıkıştırabilir.
"Görünür Kayıpsız": Aslında Kayıplı Kuantizasyon
TinyPNG, pngquant gibi araçlar çok daha fazla tasarruf sağladığı için başka bir şey yaparlar: PNG renk sayısını 256 renk altına düşürür (kuantizasyon) ve ardından titreşim (dithering) kullanarak insan gözünün fark etmemesini sağlarlar.
Bu kayıplı bir işlemdir; pikseller artık değişti. Çoğu web ikonu ve illüstrasyon için iyi sonuç verir ve kullanılmasına değer; ancak "piksellerin kesinlikle değişmemesi" gerekiyorsa – örneğin UI kesimlerinin taslakla kesinlikle tutması, ekran görüntüsünün piksel düzeyinde karşılaştırılması, materyallerin sonradan düzenlenmesi gerekirse – bunu kullanmamalısınız.
Bir aracın gerçek kayıpsız olup olmadığını anlamak için en kolay yol: sıkıştırma öncesi ve sonrasını ImageMagick ile karşılaştırmaktır
compare -metric AE orijinal.png sıkıştırilmis.png null:
Çıktı0ise hiçbir piksel değişmemiştir demektir.
Gerçek Kayıpsız PNG Araç Önerileri
Komut Satırı: oxipng (Öncelikli)
oxipng Rust ile yazılmış bir PNG kayıpsız optimizatörüdür, eski araç OptiPNG'nin modern halefi olarak görülebilir:
- Çok iş parçacığı, hızlı ve toplu işlemler için uygundur.
-o 0ile-o 6(ve-o max) sıkıştırma seviyelerini ayarlar; seviye arttıkça daha yavaş ve daha fazla tasarruf sağlar.- İsteğe bağlı
--zopfliekstra sıkıştırma yapabilir ancak çok daha yavaştır. - Squoosh'un PNG kayıpsız sıkıştırması, bunu kullanır.
bash
brew install oxipng
oxipng -o 2 --strip safe -r ./images # Dizinleri özyinelemeli işler, görüntüde etkisi olmayan meta verileri temizler
Komut Satırı: zopflipng (Sınır boyutunu zorlamak için)
Google tarafından üretilmiştir, Zopfli algoritmasını kullanarak Deflate sıkıştırmayı yeniden yapar ve genellikle oxipng'nin varsayılan seviyesinden biraz daha fazla tasarruf sağlar, ancak çok daha yavaştır; büyük resimler uzun süre işleyebilir. "Bir kez sıkıştır, uzun süre kullan" statik kaynakları için idealdir, örneğin web siteleri için logo, uygulama içindeki ikonlar.
Komut Satırı: OptiPNG, pngcrush (Klasikler)
İkisi de klasik kayıpsız PNG optimizatörleridir, birçok araç zincirinde hala görülebilirler. İşlevsel olarak oxipng tarafından temel olarak kapsanmışlardır, yeni projeler için özel olarak seçilmeleri gerekmez.
Web: Squoosh
Google'nın çevrimiçi aracıdır, PNG seçeneğinde OxiPNG kodlayıcısını seçerseniz kayıpsızdır (Not: "Reduce palette" kutusunun işaretlenmemesine dikkat edin, bu seçenek kayıplı renk azaltmasıdır).
Artısı kurulum gerektirmez ve yan yana karşılaştırma yapılabilir; eksiği ise sadece tek dosyayı işleyebilir; indirdikten sonra dosyayı yeniden adlandırmanız ve değiştirmeniz gerekir. Nadiren birkaç resmi sıkıştırmak için uygundur.
Mac Grafik Arayüzü: ImageOptim
Open-source, ücretsiz, eski Mac aracıdır; içeride oxipng, Zopfli, pngcrush gibi birden fazla optimizatörü entegre eder, en küçük sonucu almak için sırayla dener. Varsayılan olarak kayıpsız moddadır (kayıplı seçenekler manuel olarak açılır).
Sıkıştırma gücü yüksektir ancak tüm optimizatörleri açtığınızda hız yavaştır; ayrıca dosyayı doğrudan üzerine yazar, sıkıştırmadan önce bir yedekleme kopyası almalısınız.
Mac Grafik Arayüzü: ImgZilla
ImgZilla bizim macOS resim sıkıştırma aracımızdır. PNG'yi işleme şekli çok doğrudur:
- oxipng ile gerçek kayıpsız sıkıştırma; sıkıştırma seviyesi 2'dir (Squoosh'un varsayılanıyla aynıdır); pikseller hiçbir şekilde değişmez, yukarıdaki
comparekomutuyla doğrulanabilir. - kuantizasyon yapmaz, renk azaltmaz, format değiştirmez, boyut değiştirmez. PNG sıkıştırıldıktan sonra hala PNG'dir.
- yerinde sıkıştırma: dosya adı ve yolu değişmez, kodlarda veya belgelerdeki referanslar güncellenmez.
- Tam bir klasörü sürükleyip bırakabilirsiniz: alt dizinleri özyinelemeli olarak tarar, gizli dosyaları ve
node_modules'i otomatik olarak atlar; JPG, GIF, WebP, HEIC, AVIF, SVG'leri de aynı anda işleyebilir. - Orijinal dosyalar varsayılan olarak çöp kutusuna taşınır, memnun kalmazsanız sağ tıklayarak "geri getir" diyebilirsiniz.
- Sıkıştırılamayanları zorla sıkıştırmaz: sıkıştırma oranı 0.4% altında olan dosyalar "en aza indirildi" olarak işaretlenir, orijinal halinde bırakılır ve ücretsiz kullanım kotası çıkarılmaz.
- Her zaman yerel olarak çalışır, materyaller sunucuya yüklenmez.
İki nokta netleştirilmelidir:
- PNG için sınırlı boyutu zorlamaya çalışmaz. Seviye 2,
-o maxveya Zopfli'den çok daha hızlıdır; fiyatı ise olası birkaç yüzden fazla tasarruf etmeme ihtimalidir. Eğer ihtiyacınız "bir logoyu en son byte'e kadar sıkıştırmak" ise, zopflipng veya ImageOptim daha uygundur. - Varsayılan olarak PNG içindeki tüm meta verileri, renk profillerini dahil, kaldırır. Normal sRGB resimler etkilenmez; ancak resimde Display P3 gibi geniş renk aralığı profilleri (Mac ekran görüntüleri, tasarım yazılımlarından dışa aktarımında sık görülür) yerleştirildiyse, kaldırıldığında renk yönetimi yazılımlarında renklerde hafif bir değişiklik görülebilir. Renk açısından katı kurallar olan resimler için ayarlardan "EXIF bilgilerini koru" seçeneğini açabilir, meta veriler birebir korunacaktır.
Özet Tablo
| Araç | Tür | Gerçek Kayıpsız | Toplu İşlem | Uygun Kişiler |
|---|---|---|---|---|
| oxipng | Komut Satırı | ✅ | ✅ | Geliştiriciler, yapı süreçleri |
| zopflipng | Komut Satırı | ✅ | Kendi betiğinizi yazmanız gerekir | Sınır boyutunu zorlamak, hızı önemsememek |
| OptiPNG / pngcrush | Komut Satırı | ✅ | ✅ | Eski projelerden devam edenler |
| Squoosh | Web | ✅ (OxiPNG, renk azaltmama) | ❌ Tek dosya | Nadiren birkaç resim sıkıştırmak |
| ImageOptim | Mac Uygulaması | ✅ (Varsayılan) | ✅ | Mac'te maksimum sıkıştırma gücü isteyenler |
| ImgZilla | Mac Uygulaması | ✅ | ✅ Klasör sürükle-bırak | Toplu sıkıştırmak, yolu değiştirmek istememek, geri alma ihtiyacı |
| TinyPNG / pngquant | Web / Komut Satırı | ❌ Kayıplı kuantizasyon | Sürümüne göre değişir | Renk azaltmayı kabul etmek, daha yüksek sıkıştırma oranı istemek |
Nasıl Seçmelisiniz
- Sadece piksellerin değişmemesini istiyorum ve komut satırına girmeyi göze alabiliyorum: oxipng, yapısına entegre edin, bir kere yapıp işi bitirin.
- Tek dosyayı sınırlara kadar sıkıştırmak istiyorum: zopflipng.
- Mac'te grafiksel arayüz ile toplu işlem yapmak istiyorum: ImageOptim daha fazla güç sağlar; ImgZilla daha hızlıdır, orijinal dosyalar çöp kutusundan geri getirilebilir ve diğer formatları da aynı anda işleyebilir.
- Hafif kaybı kabul edip daha küçük boyut istiyorum: TinyPNG / pngquant, ancak artık kayıpsız olmadığını bilmeniz gerekir.
Son olarak bir hatırlatma: Sıkıştırma oranı ne kadar yüksekse, PNG'nin orijinal olarak nasıl dışa aktarıldığına bağlıdır. Tasarım araçları doğrudan dışa aktarılan, asla işlenmemiş PNG'lerde genellikle fazlalık çoktur; daha önce optimize edilmiş PNG'ler, sıkıştırıldığında artık çok fazla tasarruf sağlanamaz – araç "en aza indirildi" diyor, bu demektir ki zaten iyidir, aracın yeteneksizliği yoktur.
ImgZilla şu an yalnızca macOS (12.3 ve üzeri) desteklemektedir, Mac App Store'dan indirilebilir. Ücretsiz sürümde günde 10 resim sıkıştırılabilir, yalnızca başarılı sıkıştırma işlemleri kota sayılır – dolu bir PNG klasörünü sürükleyin ve ardından
compareile piksellerin gerçekten değişmediğini doğrulayın.
}
