AI di perangkat — profesional dan privat.

Tambah Teks ke GIF

Beri caption pada GIF animasi — teks meme, subtitle, atau watermark.

  • Tanpa unggahan
  • Bilah caption meme
  • Berwaktu per frame
  • Mendukung emoji

Letakkan GIF di sini

GIF, WebP animasi, atau APNG

Mulai dari
Lapisan teks
Caption Anda
Font
12%
92%
Penempatan
Penempatan

Atau seret caption pada pratinjau.

0%

Bidang di belakang kata. Setel ke 0 untuk menghilangkannya.

Bilah caption membuat kanvas lebih tinggi dan menggeser gambar, sehingga tidak ada yang tertutup.

Gaya
Perataan
8%
0%
100%
0°
Tepi
Tepi

Tajam hanya menambahkan warna yang Anda pilih — lebih baik pada foto dan berkas lebih kecil.

Tampilkan pada frame
Tampilkan pada frame

1 dari 1 frame · 0.1d

Warna
256
Dithering

Nonaktif secara bawaan: warna GIF sudah berasal dari sebuah tabel, jadi dithering hanya menambah derau.

Cara menambahkan teks ke GIF

Bakar caption ke setiap frame GIF animasi, dengan pengaturan waktu animasi dibiarkan persis seperti semula.

  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

    Ketik caption Anda

    Ketik di kotak teks dan pratinjau akan diperbarui saat Anda mengetik. Baris panjang membungkus dengan sendirinya, dan menekan Enter memulai baris baru di tempat yang Anda inginkan.

  3. 3

    Tempatkan dan beri gaya

    Pilih salah satu dari sembilan posisi atau seret caption ke mana saja di gambar. Pilih font, ukuran, garis tepi, dan warna. Untuk tampilan meme klasik, ubah lapisan menjadi bilah caption dan kanvas akan membesar di atas atau di bawah gambar.

  4. 4

    Unduh GIF yang sudah diberi caption

    Tekan Tambah teks, lalu Unduh. Jeda setiap frame, durasi total, dan jumlah pengulangan diteruskan tanpa perubahan, sehingga animasi berjalan persis seperti sebelumnya.

Mengapa menambahkan teks ke GIF

GIF animasi berjalan tanpa suara, tanpa kontrol, dan biasanya tanpa konteks apa pun di sekelilingnya. Teks adalah satu-satunya hal yang dapat membawa leluconnya, menyebut nama produknya, memberi label pada langkah tutorialnya, atau mencantumkan sumbernya — dan teks itu harus menjadi bagian dari gambar, karena sebuah GIF disalin keluar dari halamannya dan ditempel di tempat lain dalam hitungan menit setelah diterbitkan. Caption yang tertulis di dalam piksel ikut bepergian bersama berkasnya; caption yang ditulis pada HTML di sekitarnya tidak.

Hingga delapan lapisan teks, empat font bawaan yang tampak sama di setiap perangkat, garis tepi dan bayangan, bilah caption yang memperbesar kanvas, dan teks yang diatur waktunya pada rentang frame.

Membaca GIF, WebP animasi, dan APNG. Menulis GIF89a standar dengan jumlah frame, jeda per frame, durasi total, dan jumlah pengulangan dipertahankan persis.

Apa yang diberikan caption yang dibakar ke gambar

  • Ia bertahan saat disalin. Sebuah GIF diseret ke obrolan, diunggah ulang ke forum, dan disematkan di dek presentasi. Satu-satunya teks yang ikut bersamanya adalah teks di dalam frame-nya.
  • Ia bekerja tanpa suara. GIF sama sekali tidak punya jalur audio, jadi sebuah demo, reaksi, atau langkah tutorial harus menyampaikan maksudnya secara tertulis atau tidak sama sekali.
  • Ia mengubah reaksi menjadi meme. Caption atas-bawah adalah format yang langsung dikenali orang, dan itulah pembeda antara sebuah klip dan sebuah lelucon.
  • Ia memberi kredit dan membangun merek. Satu baris kecil semi-transparan di sudut bertahan pada setiap unggahan ulang, itulah sebabnya memberi watermark pada GIF adalah persoalan caption, bukan persoalan penyuntingan gambar.

Bagaimana teks masuk ke dalam animasi

Gambar diam punya satu raster untuk digambari. GIF animasi punya setumpuk raster, masing-masing berpotensi hanya menutupi sebagian kanvas, masing-masing dengan jedanya sendiri dan masker transparansinya sendiri, dan masing-masing disimpan sebagai selisih dari frame sebelumnya. Teks harus berakhir pada setiap frame itu, secara identik, atau animasinya akan memunculkan kilatan di sepanjang tepi huruf yang tak bisa disebut namanya oleh siapa pun tetapi dapat dilihat semua orang.

Apa yang terjadi per frame

  • Menyusun. Setiap frame digambar ke kanvas seukuran logis animasi, dengan menghormati offset, metode pembuangan, dan transparansinya, sehingga caption mendarat pada gambar yang benar-benar akan dilihat penonton.
  • Merasterisasi sekali. Caption digambar ke satu lapisan tunggal, bukan sekali per frame. Setiap frame kemudian menerima piksel yang benar-benar sama, sehingga pergeseran dan kedipan menjadi mustahil, bukan sekadar tidak mungkin.
  • Menyemai palet. Warna teks Anda dan gradasi antara isian dan garis tepi dimasukkan ke tabel warna berdasarkan namanya, sebelum warna gambar itu sendiri diturunkan dari histogram.
  • Mengoptimalkan ulang. Wilayah yang tidak berubah antar frame ditandai transparan kembali, dan di situlah sebagian besar ukuran GIF tersimpan — dan caption yang tidak pernah bergerak nyaris tidak berbiaya setelah frame pertama.

Identik pada frame pertama, frame tengah, dan frame terakhir

Karena caption adalah satu raster yang ditumpuk berkali-kali, pemeriksaannya ketat: pada animasi 100-frame, piksel yang membentuk huruf dibandingkan pada frame 0, frame 50, dan frame 99 dan harus cocok persis. Dan memang cocok. Alat yang menggambar teks per frame tidak bisa menjanjikan ini — font yang baru selesai dimuat antara frame 2 dan frame 3, atau transformasi yang dibulatkan berbeda pada offset yang berbeda, menghasilkan caption yang bentuknya sedikit tidak sama, dan pembedaan frame pada GIF lalu mengirim ulang caption itu secara utuh pada setiap frame.

Masalah palet, yang merupakan pokok sebenarnya dari alat ini

Setiap alat GIF lain memindahkan piksel yang sudah ada. Alat ini menciptakannya, dan itu menempatkannya langsung pada batasan tertua format ini: GIF menyimpan paling banyak 256 warna untuk keseluruhan animasi. Huruf yang dihaluskan justru hal yang tak bisa diserap oleh tabel yang sudah penuh. Tepi lembut sebuah huruf adalah gradasi — dari warna isian ke garis tepi, dan dari garis tepi ke apa pun yang kebetulan ada pada gambar — dan pada rekaman fotografis nilai-nilai perantara itu tidak punya tempat. Pengkuantisasi memaksa masing-masing ke warna terdekat yang sudah dimilikinya, dan caption pun kembali dalam keadaan tercabik. Itulah sebabnya GIF bercaption dari sebagian besar alat daring terlihat lebih buruk daripada caption yang sama pada PNG.

Dua jawaban, keduanya terukur

  • Warna yang disemai, selalu aktif. Warna isian, garis tepi, bayangan, dan bilah Anda, ditambah enam langkah gradasi dari isian ke garis tepi, ditulis ke dalam palet berdasarkan namanya sebelum warna gambar diturunkan. Sebelum ini ada, caption yang ditentukan sebagai #ffffff kembali tanpa satu pun piksel putih murni pada keluarannya — dan tidak ada satu pun bagiannya yang tampak keliru.
  • Mode tajam, saat Anda menginginkannya. Membuat tepi caption menjadi keras pada kedua batas: alfa terhadap gambar, dan isian terhadap garis tepi. Caption lalu menyumbang dua warna ke tabel alih-alih enam puluh empat.
  • Pengukurannya. Terhadap render warna penuh dari komposit yang sama, pada berkas uji fotografis tanpa entri palet yang tersisa: Halus 2.329 dari 255 pada piksel caption, Tajam 0.000. Gambar di belakang caption pun ikut membaik, dari 3.594 menjadi 0.168.
  • Apa yang dicoba lalu dibuang. Pembobotan ulang histogram warna ke arah wilayah caption sempat diterapkan, diukur, dan dihapus: begitu warnanya disemai berdasarkan nama, cara itu tidak memberi manfaat apa pun pada hurufnya dan justru mengorbankan akurasi gambar pada setiap ukuran palet yang diuji.

Mengapa dithering nonaktif secara bawaan di sini

Setiap alat sejenis di bagian ini melakukan dithering secara bawaan dan alat ini tidak, karena masukannya sudah berupa animasi yang warnanya berasal dari tabel berisi paling banyak 256 warna. Dithering memperkirakan ulang piksel yang sebenarnya sudah tepat, di seluruh gambar, tanpa memberi manfaat apa pun. Diukur pada frame 0 terhadap render warna penuh: kesalahan latar belakang adalah 0.000 dari 255 dengan dithering nonaktif, dan antara 8.9 dan 11.9 dengan dithering berpola aktif. Dithering berpola dan difusi kesalahan tetap tersedia untuk sumber warna penuh — sebuah APNG atau WebP animasi — di mana ada gradasi sungguhan untuk disebarkan.

Bilah caption, atau teks di atas gambar

Ada dua cara meletakkan kata-kata pada animasi dan keduanya tidak bisa saling menggantikan. Menumpuk meletakkan teks di atas gambar, yang tidak berbiaya dari sisi ukuran maupun bentuk namun menutupi apa pun yang ada di bawahnya. Bilah caption menambahkan pita di atas atau di bawah dan menggeser gambar ke bawah atau ke atas untuk memberi ruang — sehingga kanvas menjadi lebih tinggi dan tidak ada yang tersembunyi. Cara kedua itulah format meme klasik, dan itulah yang sama sekali tidak ditawarkan sebagian besar alat berbasis peramban, karena memperbesar kanvas berarti setiap frame harus disusun ulang pada ukuran baru.

Mana yang dipakai

  • Tumpang tindih, untuk GIF reaksi. Gambarnya adalah leluconnya dan kata-katanya adalah komentar atasnya. Gunakan garis tepi agar teks bertahan terhadap apa pun yang bergerak di bawahnya.
  • Bilah di atas, untuk format meme. Baris pembuka terbaca sebelum gambarnya. Kanvas membesar tepat setinggi kebutuhan teks yang sudah dibungkus ditambah padding — dua baris menghasilkan bilah yang lebih tinggi daripada satu baris, secara otomatis.
  • Bilah di bawah, untuk subtitle dan kredit. Pita hitam di bawah gambar terbaca sebagai pelat subtitle dan tidak pernah menutupi aksinya. Bilah di atas dan di bawah dapat dipakai bersamaan.
  • Bilah transparan. Memperbesar kanvas tanpa mengarang latar belakang, yang persis dibutuhkan oleh sebuah stiker dengan caption di bawahnya.

Tinggi bilah diukur, bukan ditebak

Pita itu tepat setinggi kebutuhan teks yang sudah dibungkus ditambah padding, dihitung sebelum satu frame pun digambar — karena pengkode diberi satu lebar dan tinggi untuk keseluruhan animasi dan menolak frame yang datang dengan ukuran lain. Ketik caption yang lebih panjang dan bilahnya bertambah satu baris; perpendek dan kanvasnya menyusut kembali. GIF 200×120 dengan bilah dua baris di atas menjadi 200×172, dan gambarnya terdorong ke bawah alih-alih tertutup.

Garis tepi, bayangan, dan teks yang benar-benar bisa dibaca

Caption yang ditumpuk pada gambar bergerak tidak punya latar belakang tetap. Teks putih tak terlihat di atas frame yang terang dan teks hitam lenyap di frame yang gelap, dan karena gambarnya bergerak, warna yang cocok pada frame 1 gagal pada frame 40. Garis tepi adalah jawabannya, dan itu bukan hiasan: ia meletakkan batas tetap antara huruf dan apa pun yang ada di belakangnya, sehingga kontras ditentukan oleh Anda, bukan oleh rekamannya.

Kontrol keterbacaan

  • Lebar garis tepi. Diukur sebagai persentase dari ukuran font, sehingga ia menyesuaikan dengan teksnya alih-alih menjadi sehalus rambut pada caption yang besar. Goresan dilukis dua kali lebar yang diminta dan isian ditaruh di atasnya, sehingga seluruh garis tepi berada di luar huruf alih-alih memakan separuhnya.
  • Bayangan. Bayangan jatuh yang lembut dengan offset, untuk pemisahan yang lebih halus daripada yang diberikan garis tepi keras. Bayangan digambar hanya pada tahap garis tepi, sehingga caption banyak baris tidak menumpuk salinan keduanya melalui tepi semi-transparannya.
  • Opasitas. Untuk watermark dan kredit, di mana tujuannya adalah hadir tanpa bersaing dengan gambar. Ini berlaku pada seluruh lapisan, termasuk garis tepinya.
  • Bidang latar. Kotak terisi di belakang kata, dengan ketebalan yang Anda pilih. Ini menetapkan kontras, bukan sekadar memperbaikinya, dan pada palet kecil inilah yang paling murah dari keempatnya: satu warna rata alih-alih tepi halus di sekeliling setiap huruf.

Efek samping yang tak pernah disebut siapa pun

Garis tepi juga yang membuat teks yang dihaluskan bertahan pada palet kecil. Tanpanya, tepi lembut setiap huruf menyatu dengan gambar, sehingga warna perantaranya bergantung pada rekaman dan tidak dapat diprediksi. Dengan garis tepi, tepi bagian dalam menyatu dari isian ke garis tepi — gradasi pendek yang sudah diketahui dan dapat ditulis ke tabel warna sejak awal. Itulah alasan enam langkah tangga warna yang disemai itu ada, dan alasan caption bergaris tepi keluar lebih bersih daripada caption tanpa garis tepi pada GIF yang sama.

Teks yang muncul dan menghilang

Caption tidak harus ada sepanjang animasi. Setiap lapisan punya rentang frame, sehingga ia bisa berjalan dari frame 10 sampai frame 30 dan tidak ada di tempat lain. Dua baris dialog menjadi dua lapisan dengan rentang berbeda; sebuah lelucon penutup dapat ditahan sampai saatnya mendarat; sebuah tutorial dapat memberi label pada tiap langkah saat langkah itu terjadi. Panelnya menunjukkan berapa banyak frame yang dicakup sebuah lapisan dan berapa lama itu dalam detik, karena nomor frame tidak berarti apa-apa tanpa jeda di sebelahnya.

Bagaimana ini tetap murah

  • Satu lapisan per kumpulan lapisan yang berbeda. Seluruh animasi dengan satu caption yang selalu aktif merasterisasi tepat satu lapisan. Dua lapisan berwaktu dengan rentang berbeda menghasilkan tiga atau empat, bukan satu per frame.
  • Bilah tidak diatur waktunya. Bilah caption sudah mengubah ukuran kanvas, jadi pita itu milik seluruh animasi dan hanya kata-katanya yang muncul dan menghilang. Mengedipkan pitanya akan terbaca sebagai kesalahan penggambaran, bukan sebagai teks yang muncul.
  • Rentang dijepit ke animasi. Rentang yang melewati frame terakhir berhenti di frame terakhir alih-alih diam-diam menghasilkan lapisan yang tidak pernah tergambar.

Font yang tampil sama di setiap perangkat

Inilah kegagalan diam-diam pada hampir setiap alat pemberi caption. Sebuah font disebut namanya, peramban atau server menerjemahkannya, dan jika font itu tidak ada maka sesuatu yang lain disubstitusikan — tanpa galat dan tanpa tanda yang terlihat. Diukur pada repositori ini di alat lain: dua entri pada pemilih lima belas font menghasilkan metrik teks yang identik dengan keluarga font cadangan, artinya kanvas selama ini menggambar sesuatu yang lain sementara menu tarik-turunnya mengklaim sebaliknya. Impact, font meme itu, hanya tampak berfungsi karena mesin yang mengujinya biasanya Windows; font itu tidak ada di sebagian besar perangkat Android, iOS, dan Linux.

Empat wajah huruf bawaan

  • Anton. Pengganti terbuka untuk Impact, dan pilihan bawaan. Huruf kapital tebal dan rapat — suara meme. Disertakan sebagai berkas, bukan sekadar disebut namanya, sehingga setiap perangkat mendapat wajah huruf yang sesungguhnya.
  • Montserrat. Sans geometris pada bobot tebal. Pilihan netral untuk demo produk, label, dan apa pun yang tidak seharusnya terlihat seperti lelucon.
  • Oswald. Rapat, sehingga caption panjang muat melintasi GIF yang sempit tanpa harus mengecil sampai tak terbaca. Wajah huruf untuk subtitle.
  • Caveat. Wajah huruf tulisan tangan, untuk anotasi dan penjelasan bergaya panah-dan-catatan di mana font mekanis terbaca terlalu formal.

Bagaimana alat ini membuktikan fontnya benar-benar terpakai

Setiap wajah huruf didaftarkan dari berkas fontnya sendiri sebelum satu huruf pun diukur — hal ini penting karena mengukur dengan wajah huruf yang belum terdaftar akan mengembalikan lebar font cadangan, dan tata letak yang dihitung darinya kemudian salah untuk wajah huruf yang akhirnya menggambar: baris terpenggal di tempat yang keliru dan bilah caption keluar dengan tinggi yang salah. Setelah pendaftaran, alat ini menanyakan apakah keluarga font tersebut benar-benar tersedia, dan melaporkan di layar jika tidak. Alat ini tidak pernah diam-diam menggambar dengan font sistem lalu menyebutnya Anton.

Emoji, aksen, dan aksara lain

Font bawaan mencakup Latin dan Latin Extended, yaitu setiap karakter dalam bahasa Inggris, Spanyol, Prancis, Jerman, Portugis, dan Indonesia. Apa pun di luar itu jatuh ke font perangkat Anda sendiri, per karakter, sehingga huruf di sekitarnya tetap memakai wajah huruf yang dipilih. Itu adalah pertukaran yang disengaja: menyertakan font yang mencakup setiap aksara berarti mengirimkan puluhan megabyte hanya untuk memberi caption pada GIF berukuran 200 KB.

Apa artinya dalam praktik

  • Emoji tampil berwarna. Rantai cadangan menyebut keluarga emoji platform secara eksplisit, karena keluarga sans generik akan mengarah ke font teks dan font teks menggambar kotak kosong. Terukur: caption dengan dua emoji memperkenalkan 980 warna berbeda ke lapisan dibanding 30 untuk caption yang sama tanpa emoji — emoji memang benar-benar karya seni berwarna, bukan garis luar.
  • Huruf Latin beraksen tepat. Baik subset Latin maupun Latin Extended dari setiap wajah huruf didaftarkan, sehingga caption berbahasa Prancis atau Portugis tidak berganti font di tengah kata.
  • Aksara lain memakai font perangkat Anda. Sirilik, Yunani, Arab, Ibrani, Thai, dan CJK semuanya tampil jika perangkat Anda punya fontnya, dan setiap perangkat modern memilikinya. Aksara itu akan terlihat seperti wajah huruf sistem Anda alih-alih seperti milik kami.

Tata letak meme, dalam satu tekanan

Huruf kapital atas-bawah dengan wajah huruf tebal dan rapat serta garis tepi hitam adalah sebuah format, bukan pilihan gaya — format itu cukup dikenali sehingga sedikit saja keliru akan terbaca sebagai amatiran. Prasetel Meme mengatur kedua lapisan sekaligus: Anton, huruf kapital, isian putih, garis tepi hitam pada lebar yang dipakai format aslinya, satu lapisan berlabuh di atas dan satu di bawah, berukuran proporsional terhadap gambar sehingga tampak pas pada GIF apa pun.

Melakukannya dengan benar

  • Dua lapisan, bukan dua baris. Baris pembuka dan lelucon penutup adalah lapisan terpisah agar bisa diposisikan dan diatur waktunya secara independen. Satu lapisan dengan baris baru di dalamnya menempatkan kedua barisnya di tempat yang sama.
  • Huruf kapital, dengan sengaja. Sakelar huruf kapital mengubah teks saat digambar alih-alih meminta Anda mengetik dengan huruf besar, sehingga caption yang sama dapat dialihkan antar format tanpa mengetik ulang.
  • Bilah untuk format caption. Bentuk meme lain yang mudah dikenali menempatkan baris pembuka pada pita putih di atas gambar alih-alih di atas gambarnya. Ubah penempatannya dan kanvas membesar untuk menyesuaikan.

Menulis caption yang terbaca

GIF berputar setiap dua atau tiga detik dan pembaca hanya mendapat satu kesempatan membaca kata-katanya sebelum gambarnya mulai lagi. Itu batasan yang jauh lebih berat daripada gambar diam, dan itulah alasan sebagian besar GIF bercaption gagal: teksnya terlalu panjang untuk selesai sebelum pengulangan, atau terlalu kecil untuk dibaca pada ukuran yang akan dilihat, atau ditempatkan tepat di mana gerakannya berada.

Berdasarkan materi

  • GIF reaksi. Enam kata atau kurang, besar, bergaris tepi, dekat tepi. Jika tidak muat dalam dua baris, itu bukan caption reaksi.
  • Demo produk dan antarmuka. Montserrat, bilah caption di bawah alih-alih tumpang tindih, dan satu rentang frame per langkah sehingga setiap label muncul bersama aksi yang dijelaskannya.
  • Tutorial dan panduan cara. Beri nomor pada langkah-langkahnya dan atur waktu tiap lapisan sesuai langkahnya. Caption permanen yang mencantumkan empat langkah tidak terbaca sementara hal kelima sedang bergerak.
  • Watermark dan kredit. Kecil, opasitas rendah, berlabuh di sudut, dan tanpa garis tepi — watermark yang bersaing dengan gambar akan dipotong oleh siapa pun yang mengunggahnya ulang.

Ukuran memakai persentase dengan sengaja

Setiap ukuran di sini — ukuran font, lebar garis tepi, bayangan, lebar pembungkusan — adalah persentase dari gambar, bukan jumlah piksel. Caption 24 piksel tidak terbaca pada GIF 640 piksel dan menutupi GIF 90 piksel, jadi ukuran dalam piksel adalah pengaturan yang harus Anda pilih ulang untuk setiap berkas. Sebagai persentase, satu set pengaturan menghasilkan caption yang tampak konsisten di seluruh kumpulan animasi dengan ukuran berbeda-beda.

Di mana GIF bercaption adalah jawabannya

Memberi caption bukan satu pekerjaan tunggal. Sebuah meme, demo produk, laporan bug, dan watermark menginginkan font, penempatan, dan pengaturan waktu yang berbeda, dan pengaturan yang membuat salah satunya bagus justru memperburuk yang lain.

Berdasarkan tujuan

  • Meme dan reaksi. Format yang menjadi alasan keberadaan tata letak atas-bawah. Dikenali sekilas dan terbaca dalam satu putaran.
  • Demo produk di README. Rekaman layar dengan langkah yang diberi label adalah dokumentasi; rekaman yang sama tanpa label hanyalah hiasan.
  • Dukungan dan laporan bug. Anotasi panah-dan-catatan pada rekaman masalahnya menghemat satu paragraf penjelasan.
  • Unggahan media sosial tanpa suara. Setiap animasi yang berjalan otomatis di lini masa itu senyap, jadi apa pun yang perlu disampaikannya harus dituliskan padanya.
  • Stiker dan emoji. Satu kata pendek pada stiker transparan, dengan bilah caption transparan sehingga kata-katanya berada di luar karya seninya.

Animasi apa yang dibuka, dan apa yang ditulis

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

  • GIF masuk. Beranimasi atau satu frame, terjalin atau tidak, dengan palet global atau palet lokal yang berbeda pada setiap frame. Frame sub-persegi pada suatu offset disusun ke kanvas penuh sebelum apa pun digambar di atasnya.
  • WebP animasi dan APNG masuk. Keduanya dibaca oleh demuxer kami sendiri di setiap peramban alih-alih oleh dekoder bawaan, sehingga frame dan pengaturan waktunya identik di mana pun.
  • GIF keluar, selalu. GIF89a standar dengan tabel warna global, jeda per frame, metode pembuangan, dan ekstensi pengulangan Netscape.
  • Selain itu ditolak disertai arahan. Video dikirim ke Video ke GIF, gambar diam ke Pembuat Meme, yang melakukan pekerjaan sama untuk gambar yang tidak bergerak.

Apa yang dibaca alat ini

GIF didekode secara bawaan di tempat peramban memiliki dekodernya dan oleh pembaca kami sendiri di tempat lain, sehingga sebuah animasi terbuka dengan cara yang sama di setiap peramban alih-alih hanya muncul sebagai frame pertamanya. WebP animasi dan APNG selalu memakai pembaca kami sendiri, dan itulah yang menjaga jumlah frame dan pengaturan waktu tetap identik di semua mesin peramban.

Batas ukuran dan kumpulan berkas

  • Gratis. Satu berkas hingga 50 MB dan hingga 300 frame, dengan tiga lapisan teks dan palet 256 warna penuh. Paket gratis bukan caption berkualitas rendah — melainkan caption untuk satu berkas.
  • Pro. Hingga 20 berkas sekaligus, diunduh sebagai satu ZIP, dan delapan lapisan teks. Pemrosesan sekaligus itulah yang dibeli Pro di sini, karena memberi caption pada sekumpulan klip dengan baris kredit yang sama satu per satu adalah pekerjaan yang benar-benar melelahkan.
  • Batas yang sama pada kedua paket. Setiap frame diperluas menjadi warna penuh selagi dikerjakan, jadi anggaran memori membatasi pekerjaan sebelum dimulai alih-alih membiarkan tab berhenti merespons sementara lingkaran kemajuan terus berputar.

Bagaimana caption digambar di perangkat Anda

Tidak ada yang diunggah. Font didaftarkan dari byte yang datang bersama halaman, caption diukur dan ditata, satu lapisan dirasterisasi, berkas didekode frame demi frame, setiap frame disusun bersama lapisan itu, palet dibangun dengan warna Anda sudah ada di dalamnya, wilayah yang tidak berubah ditandai transparan kembali, dan hasilnya ditulis sebagai GIF89a standar. Semuanya berjalan di utas latar belakang sehingga halaman tetap responsif, dan pemetaan warna berjalan di perangkat keras grafis Anda jika tersedia.

Mengapa berkas yang sama selalu mendapat caption yang identik

  • Font yang datang bersama halaman. Tidak ada permintaan jaringan yang menerjemahkan font saat berjalan, sehingga sebuah caption tidak bisa bergantung pada apa yang sedang dilakukan server font pada menit itu, atau pada font apa yang kebetulan terpasang di sebuah perangkat.
  • Pengkuantisasi yang deterministik. Median cut, bukan pengkuantisasi neural acak yang dipakai sebagian besar pustaka GIF, sehingga masukan yang sama dengan pengaturan yang sama selalu menghasilkan keluaran yang identik byte demi byte.
  • Hasil identik di setiap jalur. Jalur berakselerasi grafis dan jalur prosesor diwajibkan menghasilkan byte yang sama, bukan sekadar yang mirip — jalur yang memilih entri palet berbeda akan tampak sebagai kedipan warna antar frame.

Apa yang tidak boleh diubah oleh alat pemberi caption

Empat hal harus keluar persis seperti saat masuk: jumlah frame, jeda milik setiap frame, total waktu pemutaran, dan jumlah pengulangan. Alat yang mengubah waktu animasi sambil memberinya caption menghasilkan GIF yang sepenuhnya sah tetapi berjalan pada kecepatan yang salah, dan tidak ada yang tampak keliru pada berkasnya. Satu-satunya dimensi yang boleh berubah adalah tinggi kanvas, dan hanya ketika Anda meminta bilah caption — yang merupakan permintaan, bukan efek samping.

Caption dirasterisasi sekali dan ditumpuk ke setiap frame, dan pemetaan warna diakselerasi perangkat keras jika perangkat Anda mendukungnya, dengan jalur berakselerasi dan jalur cadangan diverifikasi menghasilkan keluaran yang identik byte demi byte. Diukur pada perangkat acuan: animasi 100-frame 480×270 diberi caption dalam 284 ms. Semua berjalan di perangkat Anda, bukan di server kami.

Pertanyaan yang sering diajukan

Apakah caption akan terlihat sama di ponsel teman saya seperti di sini?

Ya, karena font ikut dibawa bersama alat ini. Sebagian besar alat caption hanya menyebut nama sebuah font dan membiarkan setiap perangkat menerjemahkannya sendiri — yang diam-diam menampilkan caption Anda dengan Impact di Windows, dengan sesuatu yang lain di Android, dan dengan font bawaan sistem di Linux, tanpa peringatan bahwa penggantian telah terjadi. Empat font di sini (Anton, Montserrat, Oswald, dan Caveat) disertakan sebagai berkas font dan didaftarkan sebelum satu huruf pun diukur, sehingga pemenggalan baris, bentuk huruf, dan tinggi bilah caption identik di setiap mesin. Alat ini memberi tahu Anda di layar jika sebuah font gagal didaftarkan, alih-alih diam-diam menggambar dengan font lain.

Mengapa teks pada GIF sering keluar dengan tepi kasar dan berbintik?

Karena GIF hanya menyimpan paling banyak 256 warna untuk keseluruhan animasi, sedangkan huruf yang dihaluskan membutuhkan banyak warna. Tepi lembut sebuah huruf adalah gradasi antara warna teks dan apa pun yang ada di belakangnya, dan pada GIF fotografis tabel warnanya sudah penuh — jadi pengkuantisasi memaksa setiap warna abu-abu perantara itu ke warna terdekat yang kebetulan tersedia, dan tepi huruf pun pecah. Alat ini menjawabnya dengan dua cara. Warna teks Anda, ditambah enam langkah gradasi dari isian ke garis tepi, dimasukkan ke palet berdasarkan namanya sebelum warna gambar diturunkan. Dan mode tajam membuat tepi huruf menjadi keras sehingga huruf hanya menyumbang tepat dua warna yang Anda pilih dan tidak ada warna di antaranya: diukur terhadap render warna penuh dari komposit yang sama, itu berarti kesalahan 0.000 dari 255 pada piksel caption.

Bisakah caption hanya muncul pada sebagian animasi?

Bisa. Setiap lapisan teks punya rentang frame, sehingga sebuah caption dapat berjalan dari frame 10 sampai frame 30 dan tidak ada di tempat lain — begitulah cara Anda memberi subtitle pada percakapan dua baris atau membuat lelucon penutup mendarat tepat waktu. Alat ini menunjukkan berapa banyak frame animasi yang dicakup lapisan tersebut dan berapa lama itu dalam detik. Jika lapisannya berupa bilah caption, bilahnya sendiri tetap ada sepanjang animasi, karena ia telah mengubah ukuran kanvas; hanya kata-katanya yang muncul dan menghilang. Bilah yang berkedip akan terlihat seperti kesalahan penggambaran.

Bagaimana cara mendapatkan tampilan meme bilah putih klasik?

Ubah penempatan lapisan teks dari Di atas gambar menjadi Bilah caption di atas. Itu memperbesar kanvas: GIF 200×120 dengan bilah dua baris menjadi 200×172, dengan gambar terdorong ke bawah dan kata-kata berada pada pita padat alih-alih di atas gambar. Tidak ada yang tertutup. Anda bisa memiliki bilah di atas dan bilah di bawah sekaligus, dan warna bilah terserah Anda — putih untuk tampilan klasik, hitam untuk pelat subtitle. Prasetel Meme mengatur semua ini dalam satu tekanan, lengkap dengan huruf kapital Anton yang tebal dan garis tepi hitam.

Apakah menambahkan teks mengubah kecepatan atau pengulangan animasi?

Tidak. Setiap frame mempertahankan jedanya sendiri, total waktu pemutaran identik hingga milidetik, dan jumlah pengulangan diteruskan apa adanya — GIF yang dibuat untuk berputar tiga kali tetap berputar tiga kali. Ini layak diperiksa pada alat apa pun yang Anda pakai, karena mengubah waktu animasi sambil memberinya caption menghasilkan GIF yang sepenuhnya sah tetapi berjalan pada kecepatan yang salah, dan tidak ada yang tampak keliru pada berkasnya. Di sini hal itu diverifikasi pada setiap proses.

Apakah caption akan bergeser atau berkedip antar frame?

Tidak mungkin, karena caption hanya digambar sekali. Caption dirasterisasi menjadi satu lapisan tunggal dan lapisan yang sama itu ditumpuk ke setiap frame, sehingga setiap frame menerima piksel caption yang identik byte demi byte. Ini penting bukan sekadar demi kerapian: GIF menyimpan setiap frame sebagai tambalan atas frame sebelumnya, jadi teks yang bergeser sepersekian piksel antar frame akan dikirim ulang pada setiap frame dan melipatgandakan ukuran berkas. Diukur pada animasi 100-frame, piksel caption identik pada frame pertama, frame tengah, dan frame terakhir.

Bisakah saya memakai emoji?

Bisa, dan sebagian besar alat tidak bisa. Perender di sisi server dengan segelintir font Latin terpasang tidak punya glif untuk emoji dan menuliskan kotak kosong. Di sini teks digambar di perangkat Anda, sehingga rantai cadangan menjangkau font emoji Anda sendiri: ketik emoji dan ia tampil berwarna. Karya seninya milik platform Anda — emoji terlihat seperti milik Apple di iPhone dan milik Microsoft di Windows, persis seperti di tempat lain di web. Hal yang sama berlaku untuk aksara di luar cakupan font bawaan: huruf Latin beraksen sudah disertakan, sedangkan Sirilik, Yunani, Arab, atau CJK jatuh ke font apa pun yang dimiliki perangkat Anda.

Sebaiknya saya memakai teks Halus atau Tajam?

Halus adalah pilihan bawaan dan terlihat lebih baik pada ukuran besar, di mana lengkung huruf yang dihaluskan itulah yang membuatnya terbaca sebagai huruf. Tajam lebih baik pada GIF kecil, pada rekaman fotografis yang ramai, dan kapan pun ukuran berkas penting: ia memberi caption tepat warna-warna yang Anda sebutkan, yang terukur sebagai kesalahan 0.000 dari 255 terhadap render warna penuh sementara Halus terukur 2.329, dan ia juga membuat gambar di belakangnya lebih akurat, karena entri palet yang tadinya dihabiskan oleh gradasi kembali ke foto. Coba keduanya pada pratinjau — perbedaannya paling mudah dinilai pada ukuran GIF yang sesungguhnya akan dilihat.

Berapa banyak caption yang bisa saya tambahkan sekaligus?

Tiga pada paket gratis dan delapan pada Pro. Tiga sudah cukup untuk dua hal yang benar-benar orang lakukan — meme atas-bawah, atau caption ditambah baris kredit — dan setiap lapisan membawa font, ukuran, warna, posisi, rotasi, dan rentang frame-nya sendiri, sehingga lapisan tidak harus terlihat serupa. Lapisan digambar berurutan, jadi lapisan yang lebih akhir berada di atas lapisan sebelumnya pada bagian yang bertindihan.

Bisakah saya memberi caption pada GIF transparan tanpa munculnya kotak hitam?

Bisa. GIF tembus pandang yang ditumpuk ke kanvas kosong menjadi hitam transparan sepenuhnya, yang lalu dipetakan ke entri palet terdekat dengan hitam — begitulah stiker bercaption berakhir dengan persegi gelap di belakangnya pada alat lain. Di sini setiap frame diperiksa transparansinya sebelum apa pun dikodekan, dan jika ada piksel mana pun dari frame mana pun yang tembus pandang, transparansi dipertahankan melalui proses pemberian caption. Bilah caption juga bisa dibuat transparan, sehingga kata-kata berada di luar gambar tanpa mengarang latar belakang.

Mengapa GIF bercaption saya lebih besar daripada aslinya?

Karena teks adalah informasi baru. GIF memampatkan dengan menyimpan setiap frame sebagai selisih dari frame sebelumnya, dan caption statis memampat dengan baik — tetapi hurufnya sendiri adalah piksel yang sebelumnya tidak ada, dan warnanya mengambil entri palet dari gambar. Dua hal membantu: mode tajam, yang biasanya menghasilkan berkas lebih kecil daripada Halus karena menambahkan dua warna alih-alih enam puluh empat; dan menjalankan hasilnya melalui Pengoptimal GIF atau Kompresor GIF setelahnya, karena memang itulah gunanya alat-alat tersebut.

Bisakah saya memberi caption pada beberapa GIF sekaligus?

Pada Pro, bisa — hingga 20 berkas sekali jalan, diunduh bersama sebagai satu ZIP. Semuanya mendapat lapisan yang sama, dan karena setiap ukuran di sini adalah persentase dari gambar, bukan jumlah piksel, pengaturan yang sama menghasilkan caption yang tampak konsisten pada berkas dengan dimensi berbeda. Paket gratis menangani satu berkas dalam satu waktu, dengan kualitas penuh dan palet 256 warna penuh.