← Bloga dön

PNG Kayıpsız Sıkıştırma Araçları: Gerçek Kayıpsız ve Görünür Kayıpsız Arasındaki Farkı Ayırt Edin

"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?

Paylaş

"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ı 0 ise 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 0 ile -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ı --zopfli ekstra 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 compare komutuyla 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 max veya 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 compare ile piksellerin gerçekten değişmediğini doğrulayın.
}

Daha küçük, daha hızlı görseller mi?

ImgZilla’yı indirin ve yerelde sıkıştırın — görselleriniz Mac’inizden hiç çıkmaz.