En hızlı GIF diye bir şey yok
(biphelps.com)- Animasyonlu GIF hızını mümkün olan en yükseğe çıkarmak için
Frame Delaydeğerini10msdeğil20msolarak ayarlamak gerekiyor. Neden? - GIF 89a ile birlikte animasyon desteği gelmeye başladı
- Her kare için gecikme ayarlanabiliyor
- Sonraki kareye geçmeden önce beklenecek süre saniyenin yüzde biri (
10ms) biriminde ifade ediliyor 0 ~ 0xffff(yaklaşık 10 dakikalık gecikme) aralığında ayarlanabiliyor
- Peki
0ayarlanırsa ne olur? Spesifikasyonda buna net bir cevap yok, ama iki şey belirtiliyor- GIF decode edilirken her kare gecikme olmadan işlenmeli
- Gecikme değeri yalnızca
0olmadığında kullanılmalı - Yani
0olarak ayarlanırsa, "önceki kareyle birleştirilip statik görüntü olarak işlenmesi" gerekir- Böylece yalnızca hareket eden bölümleri kaydeden kareler eklenerek boyut küçültülebilir
- Sorun şu ki kimse
0gecikmeyi desteklemiyor
→ GIF destekleyen çoğu program2(20ms)altındaki değerleri daha yüksek bir değere sabitliyor- QT, IE/FF ile uyumlu:
(delay < 2 ? 10: delay) * 10 - Chrome, FF ile uyumlu: yanıp sönen reklamların
0kullanmasını engellemek için10msve altı değerleri100msyapıyor - FF, IE ve Opera ile uyumlu:
0~10aralığını100msolarak ayarlıyor - IE 5, Netscape yavaş olduğu için ona uyum sağlıyor:
50ve altı durumlarda100e sabitliyor
- QT, IE/FF ile uyumlu:
- Bu kodların ortak noktası,
0~1değerlerini2ye değil10(100ms)değerine çekmeleri- Yani
10,100ile aynı; en hızlı değer ise20
- Yani
Sonuç
- Kimse GIF spesifikasyonuna göre render etmiyor, ama bence öyle yapılmalı
- Şu anda en hızlı GIF'i elde etmek için
1(10ms)yerine2(20ms)kullanın - Herkes GIF spesifikasyonunu doğru şekilde uygularsa
10msgecikmeli GIF'ler desteklenebilir- GIF animasyonunun tek bir karesinde
256dan fazla renk desteklenebilir - Küçük gecikme değeri verince daha yavaş olma karmaşası ortadan kalkar
- Kare başına yalnızca güncellenen alanı içeren GIF'ler oluşturularak sıkıştırma oranı iyileştirilebilir
Henüz yorum yok.