AI di perangkat — profesional dan privat.

Kompres GIF

Perkecil GIF animasi ke ukuran pilihan Anda — waktu dan transparansi tetap utuh.

  • Tanpa unggah
  • Tentukan ukuran
  • Menjaga waktu
  • 2–256 warna

Letakkan GIF di sini

GIF, WebP animasi, atau APNG

Mode kompresi
Mode kompresi
Ukuran target
2 MB

Alat ini mencari pengaturan paling ringan yang mencapainya.

Keluaran
Warna
128
Dithering
Skala
100%
Simpan 1 frame tiap
1

Frame yang dibuang menyerahkan waktunya ke frame yang bertahan, jadi durasi animasi tetap sama.

Lanjutan
0

Membiarkan piksel yang hampir sama dihitung tidak berubah.

Menyimpan hanya yang berubah antar-frame.

Mematikan frame delta — keduanya butuh slot palet yang sama.

Cara mengompres GIF

Perkecil GIF animasi, baik dengan menyebutkan ukuran yang Anda butuhkan maupun dengan mengatur sendiri palet, skala, dan laju frame.

  1. 1

    Tambahkan GIF Anda

    Seret GIF animasi ke area unggah, atau klik untuk menelusuri. WebP animasi dan APNG juga bisa. Berkas dibaca di perangkat Anda dan tidak pernah diunggah.

  2. 2

    Pilih ukuran target atau kendali manual

    Pada mode target, ketik ukuran yang Anda butuhkan — 5 MB, 2 MB, sesuai yang diizinkan tujuan — dan alat ini mencari pengaturan paling ringan yang mencapainya. Pada mode manual Anda menetapkan palet, skala, pembuangan frame, dan dithering.

  3. 3

    Periksa pratinjau dan angkanya

    Panel hasil menampilkan animasi terkompresi, ukuran sebelum dan sesudah, serta berapa yang dihemat. Jika suatu pengaturan terlalu agresif, Anda melihatnya di pratinjau, bukan setelah mengunduh.

  4. 4

    Unduh GIF terkompresi

    Tekan Unduh. Berkas mempertahankan waktu tiap frame, jumlah pengulangan, dan transparansinya, jadi diputar persis seperti aslinya, hanya lebih kecil.

Mengapa mengompres GIF

GIF adalah satu-satunya format animasi yang didukung luas dan lahir sebelum semua teknik kompresi modern, dan itu terasa. Format ini menyimpan paling banyak 256 warna per frame, tidak punya kompensasi gerak, dan di tangan pengodean yang ceroboh menulis setiap frame sebagai gambar utuh. Rekaman layar lima belas detik yang sebagai MP4 hanya 400 kB rutin berakhir sebagai GIF 12 MB: terlalu besar untuk lampiran surel, terlalu besar untuk sebagian besar klien obrolan, dan cukup lambat di koneksi seluler sehingga selesai dimuat setelah pembacanya menggulir lewat.

Tetapkan ukuran target dan kompresor mencarinya, atau ambil sendiri kendali palet, skala, dan frame.

Membaca GIF, WebP animasi, dan APNG. Menulis GIF89a standar dengan jeda tiap frame, jumlah pengulangan, dan transparansi tetap terjaga.

Apa yang sebenarnya didapat dari kompresi

  • Bisa dilampirkan. Sebagian besar server surel menolak lampiran di atas 10 MB dan banyak klien obrolan menolak apa pun di atas 8. Kompresor sering menjadi pembeda antara berkas terkirim dan tidak.
  • Kecepatan halaman. GIF animasi tidak memblokir apa pun, tetapi ia berebut lebar pita dengan segala hal lain di halaman dan terus mendekode selama ia berulang.
  • Kuota seluler. Pembaca dengan koneksi berbatas membayar setiap bita animasi yang tak dioptimalkan, dan membayarnya lagi tiap kunjungan bila tidak tersimpan di singgahan.
  • Penyimpanan yang menumpuk. Situs dokumentasi dengan enam puluh rekaman layar memikul setengah gigabita animasi yang seharusnya delapan puluh megabita.

Bagaimana kompresi GIF benar-benar bekerja

Tidak ada penggeser kualitas dalam format GIF. Berbeda dengan JPEG, di mana satu angka menukar detail dengan ukuran, GIF dikompres dengan mengubah apa yang ada di dalamnya: berapa banyak warna, berapa banyak piksel, berapa banyak frame, dan seberapa banyak dari tiap frame yang harus disimpan sama sekali. Memahami empat tuas itu mengubah kompresi dari tebak-tebakan menjadi keputusan, karena biayanya bagi penonton sangat berbeda-beda.

Empat tuas, sesuai urutan menariknya

  • Dimensi. Memangkas lebar dan tinggi menjadi setengah menghilangkan sekitar tiga perempat data piksel dan tidak mengubah apa pun pada geraknya. Pada animasi yang toh akan ditampilkan kecil, ini nyaris gratis — karena itu dicoba lebih dulu.
  • Palet. Dari 256 ke 128 warna tak terlihat pada sebagian besar materi begitu dithering diterapkan. Di bawah sekitar 32 entri, gradasi halus mulai tampak sebagai pita.
  • Frame delta. Menyimpan hanya persegi yang berubah, dan menandai piksel tak berubah sebagai transparan, tidak berbiaya secara visual dan kerap bernilai beberapa kali lipat ukuran berkas dengan sendirinya.
  • Laju frame. Membuang satu dari tiap dua frame memangkas separuh data frame, dan inilah satu-satunya tuas di daftar ini yang langsung disadari penonton, sebagai tersendat. Ia terakhir.

Frame delta: tuas yang dibiarkan mati oleh kebanyakan alat

Spesifikasi GIF sejak 1989 mengizinkan sebuah frame menutupi hanya sebagian kanvas, dan menandai piksel sebagai transparan untuk berarti «yang sudah ada di layar di sini masih benar». Klip orang berbicara atau rekaman antarmuka mengubah sebagian kecil pikselnya per frame, dan deretan panjang satu indeks transparan terkompres nyaris menjadi nol. Diukur pada animasi uji alat ini — latar gradasi statis dengan satu kotak bergerak — menyimpan setiap frame utuh menghasilkan 116.532 bita, dan pengodean delta menghasilkan 21.304. Itu selisih 5,5 kali dari sebuah perubahan tanpa biaya visual sama sekali, dan inilah alasan utama GIF buatan tangan berkali lipat lebih besar dari seharusnya.

Hasil terukur

  • Frame delta lawan frame utuh 116.532 B menjadi 21.304 B pada animasi 20 frame: 5,5x, dengan keluaran identik piksel demi piksel.
  • 256 ke 8 warna 381.670 B menjadi 90.113 B pada klip fotografis 12 frame: 4,2x, dan titik di mana pita menjadi kentara.
  • Membuang satu dari tiap dua frame 21.304 B menjadi 14.282 B, dengan total durasi pemutaran tetap 2.000 ms.
  • Kecepatan pengodean 100 frame pada 480x270 dikodekan dalam 209 ms di jalur berakselerasi perangkat keras.

Membidik ukuran alih-alih menebak

Setiap kompresor GIF lain memberi Anda penggeser kompresi dan membiarkan Anda menemukan sendiri angka mana yang mencapai ukuran yang dibutuhkan. Itu terbalik: Anda hampir tidak pernah ingin «kompresi 75%», Anda ingin berkas di bawah 8 MB karena itulah yang diterima klien obrolan. Mode target membalikkannya. Anda menyebut ukurannya, dan alat ini menelusuri tangga pengaturan yang diurutkan menurut biaya masing-masing bagi penonton — dimensi dulu, palet berikutnya, frame terakhir — lalu mengembalikan kombinasi paling ringan yang muat. Pencariannya adalah bagi dua, jadi biayanya paling banyak delapan pengodean alih-alih dua puluh enam pada penyisiran linear; dan bila sebuah ukuran memang tak terjangkau, ia mengatakannya dan menyerahkan yang terkecil yang berhasil, bukan diam-diam meleset dari satu-satunya instruksi yang diterimanya.

Memilih pengaturan secara manual

  • Rekaman layar dan demo antarmuka. Warna datar dan tepi tajam. Coba 64 warna tanpa dithering — dithering menambah derau yang merusak keterbacaan teks dan memakan bita justru pada materi yang paling baik terkompres tanpanya.
  • Materi fotografis atau dari video. Gradasi halus butuh dithering agar tidak berpita. 128 warna dengan dithering terurut adalah titik awal yang baik; difusi galat sedikit lebih bagus dan lebih lambat karena tak bisa diparalelkan.
  • Gambar garis, logo, dan pixel art. Sering selamat pada 16 bahkan 8 warna dengan dithering mati. Matikan dengan sengaja di sini — ia akan membintiki area datar secara kentara.
  • Apa pun dengan latar transparan. Biarkan optimasi delta apa adanya dan harapkan berkas yang lebih besar. Kedua fitur memperebutkan indeks palet yang sama, dan kebenaran yang menang.

Di mana GIF terkompresi adalah jawaban yang tepat

  • Tanda tangan surel dan buletin. Sebagian besar klien surel masih menolak memutar video, jadi sebuah animasi harus berupa GIF. Jaga di bawah satu megabita.
  • Dokumentasi dan berkas README. GIF diputar langsung di GitHub dan di sebagian besar penghasil situs statis, tanpa pemutar, tanpa kebijakan putar-otomatis, dan tanpa pertanyaan kodek.
  • Obrolan dan perpesanan. Batas ukurannya ketat dan berbeda tiap klien — persis kasus yang menjadi alasan adanya mode target.
  • Salinan luring dan arsip. GIF tidak butuh dukungan kodek maupun jaringan, jadi ia masih akan diputar dua puluh tahun lagi.

Apa yang masuk dan apa yang keluar

Daftar masukan bersifat tertutup dan ditegakkan di dialog berkas, bukan di mesinnya, sehingga berkas yang tidak bisa dibuka alat ini ditolak dalam milidetik beserta arahan ke alat yang bisa, alih-alih diterima lalu gagal belakangan di balik indikator pemuatan.

  • GIF masuk. Beranimasi atau satu frame, terjalin atau tidak, dengan palet global atau palet lokal berbeda di tiap frame. Frame yang hanya sub-persegi bergeser dikomposisikan ke kanvas penuh sebelum hal lain terjadi.
  • WebP animasi dan APNG masuk. Keduanya dibaca oleh demuxer kami sendiri di setiap peramban, bukan oleh dekoder bawaan, jadi frame dan waktunya identik di mana pun — termasuk di peramban yang sama sekali tidak punya dekoder gambar animasi.
  • GIF keluar, selalu. GIF89a standar dengan tabel warna global, jeda tiap frame, metode pembuangan, dan ekstensi pengulangan Netscape.
  • Selain itu ditolak beserta arahan. Video diarahkan ke Video ke GIF, gambar diam ke Pembuat GIF. «Ini tidak bisa dibuka di sini, pakai itu» bisa ditindaklanjuti; «berkas tidak didukung» terbaca seolah berkas Anda rusak.

Batas ukuran dan frame

  • Gratis. Satu berkas hingga 50 MB dan hingga 300 frame, keluaran hingga 1024 px pada sisi panjang dan hingga 128 warna. Ini kompresor yang benar-benar berguna, bukan demo — setara batas berkas pesaing yang paling banyak dipakai untuk pekerjaan ini.
  • Pro. Tanpa batas berkas yang dipaksakan, dengan palet 256 warna penuh pada resolusi penuh. Plafonnya adalah memori perangkat Anda, karena tidak ada yang diunggah — tidak ada jatah server yang bisa habis.
  • Satu batas yang berlaku di kedua paket. Setiap frame dibentangkan ke warna penuh selagi diproses, jadi anggaran memori membatasi pekerjaan sebelum dimulai, alih-alih membiarkan tab berhenti merespons sementara indikatornya terus berputar.

Apa yang terjadi di perangkat Anda

Tidak ada yang diunggah. Saat Anda menambahkan berkas, ia didekode frame demi frame di mesin Anda, palet dibangun dari cuplikan yang tersebar di seluruh animasi dan bukan dari frame pertama, setiap piksel dipetakan ke palet itu, area tak berubah ditandai transparan, dan hasilnya dikompres serta ditulis sebagai GIF89a standar. Semuanya berjalan di utas latar agar halaman tetap responsif, dan operasi tunggal terberat — memetakan ulang setiap piksel setiap frame ke entri palet terdekat — berjalan di perangkat keras grafis Anda bila tersedia, dan di prosesor bila tidak.

Mengapa berkas yang sama selalu terkompres identik

  • Kuantiser deterministik. Sebagian besar pustaka GIF memakai NeuQuant, kuantiser neural acak yang keluarannya bergeser antar-jalan. Alat ini memakai median cut, yang eksak dan dapat direproduksi, jadi masukan yang sama dengan pengaturan yang sama selalu menghasilkan keluaran identik bita demi bita.
  • Hasil identik di setiap jalur. Jalur berakselerasi grafis dan jalur prosesor wajib menghasilkan bita yang sama, bukan sekadar mirip. Jalur yang memilih entri palet berbeda akan tampak sebagai kedipan warna antar-frame, yang jauh lebih terlihat pada animasi daripada satu piksel salah pada gambar diam.
  • Waktu dibaca dari berkas, bukan diasumsikan. Jeda GIF berlaku per frame dan kerap tidak beraturan. Jeda dibaca satu per satu dan diteruskan, bukan dirata-ratakan menjadi satu laju frame.

Pengodean berakselerasi perangkat keras bila perangkat Anda mendukungnya, dan jalur berakselerasi maupun jalur cadangan diverifikasi menghasilkan bita yang identik. Diukur pada mesin acuan: 100 frame pada 480x270 dalam 209 ms. Semua berjalan di perangkat Anda, bukan di server kami.

Pertanyaan umum

Seberapa kecil GIF bisa jadi tanpa terlihat lebih buruk?

Untuk sebagian besar rekaman layar dan klip reaksi, 50 sampai 80 persen bisa dicapai sebelum ada yang kentara, dan hampir semuanya berasal dari dua perubahan: mengurangi dimensi dan memangkas palet dari 256 warna menjadi 64 atau 128. Kasus sulitnya adalah materi fotografis dengan gradasi halus, karena palet kecil tampak sebagai pita. Gambar garis, rekaman antarmuka, dan animasi warna datar jauh lebih tahan — sering selamat pada palet 32 warna tanpa kehilangan yang terlihat.

Apakah membuang frame membuat GIF saya lebih cepat?

Tidak di sini. Ketika sebuah frame dihapus, waktu tampilnya ditambahkan ke frame yang bertahan, sehingga animasi tetap berjalan persis selama sebelumnya. Ini layak diperiksa pada alat mana pun: ini bug yang umum, hasilnya tetap GIF yang sah, dan satu-satunya gejalanya adalah animasi berjalan dua kali lipat kecepatannya — mudah terlewat pada klip pendek dan mustahil terlewat pada klip panjang.

Apa beda mengurangi warna dengan kompresi lossy?

Mengurangi warna mengubah palet: setiap piksel dipetakan ke entri terdekat dari himpunan yang lebih kecil, jadi berkas menyimpan lebih sedikit informasi. Kompresi lossy justru membiarkan piksel yang hampir sama dengan frame sebelumnya dianggap tidak berubah, sehingga hampir tidak memakan tempat. Keduanya independen, dan menggabungkan takaran sedang dari masing-masing biasanya mengalahkan mendorong salah satunya sampai batas.

Sebaiknya konversi ke MP4 daripada mengompres GIF?

Kalau tujuannya menerima video, ya, dan selisihnya jauh. GIF terbatas pada 256 warna per frame dan tidak punya kompresi antar-frame modern, jadi MP4 atau WebM dari klip yang sama rutin sepuluh sampai dua puluh kali lebih kecil dan terlihat lebih baik. Kompres GIF-nya bila tujuan memang mensyaratkan format itu: tanda tangan surel, sebagian klien obrolan, dokumentasi yang harus jalan luring.

Apakah mengompres merusak transparansi GIF saya?

Tidak. Transparansi GIF adalah indeks palet per frame, bukan kanal alfa, dan ia terbawa sepanjang seluruh proses. Satu hal berubah otomatis: saat latar transparan diminta, optimasi frame delta dimatikan, karena kedua fitur ingin memakai indeks transparan dan memaknainya berbeda. Hasilnya benar dan sedikit lebih besar, dan alat ini mengatakannya alih-alih diam-diam menghasilkan noda.

Kenapa GIF saya malah membesar?

Hampir selalu karena ia sudah dioptimalkan, dan mengodekan ulang membangun palet dan data frame baru tanpa menemukan apa pun lagi untuk dibuang. Alat ini melaporkan ukuran sebelum dan sesudah pada setiap proses, jadi ini terlihat seketika, bukan setelah Anda mengganti aslinya. Kalau keluarannya lebih besar, pertahankan masukannya.

Apakah ada batas ukuran?

Pada paket gratis, satu berkas hingga 50 MB dan hingga 300 frame. Pro menghapus batas berkas dan berjalan sejauh memori perangkat Anda sanggup — karena tidak ada yang diunggah, plafonnya adalah mesin Anda, bukan jatah server. Animasi yang sangat panjang pada dimensi besar jauh lebih cepat di peramban desktop daripada di ponsel.

Apakah berkas terkompresi diputar sama di mana-mana?

Ya. Keluarannya GIF89a standar dengan tabel warna global, jeda tiap frame, dan ekstensi pengulangan Netscape — persis yang diharapkan setiap peramban, klien obrolan, dan penampil gambar. Waktu dan jumlah pengulangan disalin dari sumber kecuali Anda mengubahnya sendiri.