GIF'ler neden bu kadar ağırlaşır
GIF 1987'den kalmadır ve video için değil, yavaş bağlantılardaki küçük grafikler için tasarlanmıştır. Her kareyi LZW ile sıkıştırılmış ayrı bir görsel olarak saklar; LZW, düz renk alanlarında iyi, kamera görüntüsü, renk geçişleri veya film greni gibi gürültülü her şeyde kötü çalışan kayıpsız bir yöntemdir. Modern video kodeklerinin kullandığı türden bir hareket dengelemesi yoktur; bu yüzden saniyede 25 karelik üç saniyelik bir klip, art arda paketlenmiş neredeyse tam 75 resimdir.
Her kare ayrıca 256 renkle sınırlıdır. Bir GIF videodan yapıldığında kodlayıcı, eksik tonları taklit etmek için çoğu zaman her kareye titreşim (dithering) gürültüsü serpiştirir ve LZW'nin en kötü sıkıştırdığı şey de tam olarak bu gürültüdür. Bilinen 15 MB'lık tepki GIF'inin MP4 olarak 600 KB tutmasının nedeni budur.
Boyut, kare sayısına, kare başına piksel sayısına ve renk ayrıntısına bağlıdır. Bu araç üçünü birden azaltır.
Üç seviye aslında ne yapar
Araç, tarayıcınızın içinde WebAssembly'ye derlenmiş FFmpeg'i çalıştırır ve GIF'i iki geçişte yeniden oluşturur. İlk geçiş tüm animasyonu analiz eder ve onun için tek bir optimize palet üretir; ikinci geçiş her kareyi bu paleti kullanarak yeniden çizer. Kareler, kenarları basit yeniden örneklemeden daha keskin tutan Lanczos filtresiyle ölçeklenir; renkler ise rastgele gürültüden çok daha iyi sıkışan düzenli bir desen üreten sıralı (Bayer) titreşimle eşlenir.
- Hafif — saniyede 15 kare, orijinal boyutlar, en fazla 256 renk. GIF'in mevcut boyutunda kalması gerektiğinde en iyisidir; örneğin piksel piksel okunabilir olması gereken bir arayüz demosu.
- Orta — saniyede 12 kare, genişlik ve yükseklik %75'e indirilmiş, en fazla 128 renk. Varsayılan seviyedir ve web sitelerindeki, belgelerdeki ve sohbetlerdeki çoğu GIF için iyi bir dengedir.
- Yoğun — saniyede 10 kare, genişliğin ve yüksekliğin yarısı, en fazla 64 renk. E-posta eki ya da bir forumdaki yükleme sınırı gibi katı bir sınıra sığmanız gerektiğinde kullanın.
Boyutları yarıya indirmek tek başına piksellerin dörtte üçünü ortadan kaldırır; Yoğun seviyenin 12 MB'lık bir dosyayı 2 MB'ın altına indirebilmesinin nedeni budur. Animasyon zamanlaması korunur: üç saniyelik bir döngü yine üç saniye sürer, yalnızca daha az kareyle çizilir.
İçeriğinize göre seviye seçmek
Animasyonun türü, başlangıçtaki dosya boyutundan daha önemlidir.
- Ekran kayıtları ve arayüz tanıtımları geniş düz alanlar ve keskin metin içerir. Renk azaltmayı iyi kaldırırlar ama küçültmeden zarar görürler, çünkü küçük metin okunamaz hale gelir. Önce Hafif'i deneyin; hâlâ çok büyükse sıkıştırmadan önce kaydı ilgili alana kırpın.
- Birkaç düz renk içeren illüstrasyonlar, logolar ve çıkartmalar 64 renkte neredeyse aynı görünür. Çizim zaten küçük değilse Yoğun genellikle işe yarar.
- Videodan veya kamera görüntüsünden alınmış klipler renk geçişleri, ten tonları ve gökyüzü içerir. Bunlarda 64 renkte bantlanma görülür, bu yüzden Orta daha güvenli seçimdir. Orta bile çok büyük kalıyorsa klip muhtemelen GIF için fazla uzundur.
- Piksel sanatı hiç ölçeklenmemelidir. Orijinal boyutları koruyan Hafif'i kullanın.
Videodan GIF yapıyorsanız boyutu oluşturma aşamasında Videoyu GIF'e dönüştür ile kontrol etmek ve klibi kısa tutmak, ardından gerekirse sonucu sıkıştırmak genellikle daha iyidir.
Sonuç beklediğiniz gibi değilse
- Dosya neredeyse hiç küçülmedi. Kaynak büyük olasılıkla zaten optimize edilmişti; örneğin küçük, düşük kare hızlı ya da zaten az renkle sınırlı. 8–10 fps'de çalışan bir GIF, kare hızı adımından pek bir şey kazanmaz. Bir seviye yukarı çıkın.
- Renk geçişlerinde görünür bantlanma. Bu, 128 ya da 64 renkli paletin sonucudur. Daha hafif bir seviyeye inin.
- Izgara benzeri bir doku beliriyor. Bu, sıralı titreşim desenidir. En çok Yoğun seviyede yumuşak geçişlerde görünür; Hafif veya Orta bunu azaltır.
- Bir sahnede tuhaf renkler. Tüm animasyon tek bir paleti paylaştığından, sıra dışı renklere sahip kısa bir sahne (mavi ağırlıklı bir klipte kırmızı bir parlama gibi) daha az palet yuvası alır.
Sınırlar ve gizlilik
100 MB'a kadar dosyalar kabul edilir ve aynı anda birkaç GIF bırakabilirsiniz. Bunlar o anda seçili seviyeyle sırayla işlenir ve her sonuç önceki ve sonraki boyutunu gösterir. Tek tek ya da tek bir ZIP olarak indirin.
Hiçbir şey yüklenmez. FFmpeg motoru bir kez indirilir, ardından yerel olarak çalışır; dolayısıyla işlem hızı cihazınıza bağlıdır. 20 MB'lık bir GIF genellikle birkaç saniyeden bir dakikaya kadar sürer; telefonlar dizüstü bilgisayarlardan yavaştır ve çok uzun animasyonlar eski cihazlarda belleği tüketebilir.