cover for Cara Menambahkan Background Pada GIF Menggunakan Sharp.js

Cara Menambahkan Background Pada GIF Menggunakan Sharp.js

Tutorial mengenai bagaimana cara menambahkan background pada GIF dengan menggunakan Sharp.js

No
View(s)
{{ readingTime }}
Waktu baca
08 Juni, 2025
08 Juni, 2025
Share this blog
Support me on
Daftar Blog Cara Menambahkan Background Pada GIF Menggunakan Sharp.js

Pernah ingin menambahkan background pada sebuah GIF dengan menggunakan module Sharp.js? Saya juga. Setelah saya riset akhirnya saya ketemu caranya. Mungkin ada cara lain, tapi cara ini sudah cukup dan sesuai untuk saya. Berikut ini cara yang saya gunakan untuk menambahkan background pada GIF dengan menggunakan Sharp.js.


Persiapan

Module Sharp.js minimal versi 0.30.0, karena di versi ini Sharp.js sudah memiliki support built-in untuk output GIF, jadi tidak perlu module atau library tambahan. Untuk meng-install Sharp.js versi 0.30.0 dengan menggunakan npm, gunakan perintah:

npm install sharp@0.30.0


Atau install saja versi terbaru dengan menggunakan perintah:

npm install sharp@latest


GIF yang akan dipakai pada tutorial ini adalah GIF dengan dimensi 512x160px:

GIF lingkaran kuning yang menghilang


Gambar yang akan dipakai sebagai background dari GIF di atas adalah gambar checkerboard yang biasa ada di PNG dengan dimensi 512x512px:

Background checkerbox yang biasa ada di PNG


Menambahkan background pada GIF

Cara paling umum menyatukan gambar satu sama lain pada Sharp.js adalah dengan menggunakan composite. Untuk meng-composite dua gambar, gambar yang akan ditimpa harus lebih besar atau sama dimensinya dengan gambar yang akan menimpa. Dalam kasus ini, dimensi background harus lebih besar atau sama dengan dimensi GIF-nya. karena dimensi GIF yang digunakan tidak sama, kita resize terlebih dahulu GIF-nya dengan cara:

await sharp(gifInput, { animated: true })
.resize(
  { width: BACKGROUND_WIDTH, height: BACKGROUND_HEIGHT, fit: "contain", filter: "nearest" }
)
.toFile("resized-output.gif")


Kalau secara urutan, biasanya background duluan kan di paling awal kemudian di-composite dengan GIF-nya. Tapi, kalau dengan cara ini biasanya dimensi GIF akan jauh berkali lipat dibanding dengan backgroundnya karena GIF ini meskipun secara dimensi sama dengan background, aslinya heightnya dikali lagi dengan jumlah framenya (kalau tidak salah istilahnya anggap saja sama dengan film roll).


Karena itu, saya balik urutannya, jadi GIF-nya yang paling awal kemudian di-composite dengan backgroundnya. Jadi bakalan ketimpa dong GIF-nya? Normalnya iya. Karena dari itu, kita juga harus menambahkan beberapa parameter untuk mengatasi hal itu. Kurang lebih seperti ini solusinya:

await (gifInput, { animated: true })
.composite(
  { input: backgroundInput, blend: "dest-over", tile: true }
)
.toFile("composited-output.gif")


Jadi, pertama backgroundya kita tambahkan parameter yang namanya blend. Secara default, blend ini memiliki value "over" yang berfungsi untuk menimpa gambar kedua (background) ke atas gambar pertama (GIF). Karena kita melakukannya terbalik, jadi valuenya kita ubah jadi blend: "dest-over" yang berarti menimpa gambar pertama (GIF) ke atas gambar kedua (background).


Parameter kedua adalah parameter yang namanya tile. Secara default, tile bernilai false. Jika kita ubah menjadi true, tile akan mengulang gambar kedua (background) sepanjang gambar pertama (GIF) sesuai dengan parameter gravity (default gravity: "centre"). Dengan parameter tile: true ini, memungkinkan dimensi background sama dengan GIF-nya.


Berikut ini hasil akhir setelah kita berhasil menggabungkan GIF dengan background statiknya:

Hasil penggabungan antara GIF dengan background checkerboard


Selamat! Kamu telah berhasil menambahkan background pada GIF-mu. Kalau kamu suka blog ini, bagikan ke teman-temanmu ya.


ADVERTISEMENT

Blog Yang Mirip

Beberapa blog yang mirip dengan blog Cara Menambahkan Background Pada GIF Menggunakan Sharp.js
Penjelasan mengenai 3 fungsi yang ada ada Microsft Excel (FILTER, INDEX, CHOOSE) beserta dengan contoh-contoh penggunaannya agar kamu dapat dengan mudah memahaminya
Penjelasan mengenai empat fungsi sederhana yang ada pada Microsoft Excel yang dapat kamu gunakan untuk memudahkanmu dalam mengolah data (SUM, COUNT, IF, UNIQUE) beserta contoh penggunannya
Daftar tanaman dan informasi seputar tanaman (musim tumbuh, harga beli benih, harga jual, dan waktu tumbuh) pada game Stardew Valley
Tutorial mengenai bagaimana cara me-resize pixel art agar tidak buram dan jernih ketika menggunakanSharp.js
Tutorial menambahkan custom HTML tag pada Quill.js
ADVERTISEMENT
ADVERTISEMENT

Mau Cari Blog Yang Lain?

Cari blog lain di sini

Konten Yang Mirip

Konten yang mirip dengan konten ini

Mari Mengenal 3 Fungsi Microsoft Excel Ini (FILTER, INDEX, CHOOSE) cover image
Penjelasan mengenai 3 fungsi yang ada ada Microsft Excel (FILTER, INDEX, CHOOSE) beserta dengan contoh-contoh penggunaannya agar kamu dapat dengan mudah memahaminya
20 September, 2025
2 View(s)
4 Fungsi Sederhana Microsoft Excel Untuk Memudahkanmu Dalam Mengolah Data (SUM, COUNT, IF, UNIQUE) cover image
Penjelasan mengenai empat fungsi sederhana yang ada pada Microsoft Excel yang dapat kamu gunakan untuk memudahkanmu dalam mengolah data (SUM, COUNT, IF, UNIQUE) beserta contoh penggunannya
14 September, 2025
No View(s)
Daftar Harga Tanaman - Stardew Valley cover image
Daftar tanaman dan informasi seputar tanaman (musim tumbuh, harga beli benih, harga jual, dan waktu tumbuh) pada game Stardew Valley
28 Mei, 2025
6 View(s)
Cara Resize Pixel Art Agar Tidak Buram Menggunakan Sharp.js cover image
Tutorial mengenai bagaimana cara me-resize pixel art agar tidak buram dan jernih ketika menggunakanSharp.js
01 Juni, 2025
No View(s)
Menambahkan Custom HTML Tag Module - Quill.js cover image
Tutorial menambahkan custom HTML tag pada Quill.js
28 Mei, 2025
No View(s)

Mungkin Kamu Juga Suka

Konten yang mungkin kamu juga suka

Penjelasan Efek Support Card - Umamusume: Pretty Derby cover image
Penjelasan sederhana mengenai efek-efek yang ada pada Support Card pada game Umamusume: Pretty Derby
26 Agustus, 2025
3 View(s)
Guide Maruzensky untuk Menang di URA Finale - Umamusume: Pretty Derby cover image
Guide lengkap cara menang URA Finale dengan Maruzensky pada game Umamusume: Pretty Derby
16 Agustus, 2025
1 View(s)
Guide Gold Ship untuk Menang di URA Finale - Umamusume: Pretty Derby cover image
Guide lengkap cara menang URA Finale dengan Gold Ship pada game Umamusume: Pretty Derby
05 Agustus, 2025
No View(s)
Guide Mayano Top Gun untuk Menang di URA Finale - Umamusume: Pretty Derby cover image
Guide lengkap cara menang URA Finale dengan Mayano Top Gun pada game Umamusume: Pretty Derby
04 Agustus, 2025
2 View(s)
Guide Super Creek untuk Menang di URA Finale - Umamusume: Pretty Derby cover image
Guide lengkap cara menang URA Finale dengan Super Creek pada game Umamusume: Pretty Derby
03 Agustus, 2025
6 View(s)

Konten Lainnya

Konten lainnya yang bisa kamu jelajahi

Blog Informatif

Blog illustration

Baca-baca blog topik random. Ada berbagai macam topik random yang tersedia, seperti game, pemrograman, dan banyak lagi. Mungkin terlalu random.

Telusuri Semua Blog Atau cari di Blog

Resource Gratis

Resource illustration

Di sini tersedia berbagai macam resource yang bisa kamu download secara gratis. Untuk saat ini tersedia pixel arts.

Telusuri Semua Resource Atau cari di Resource

Online Tools

Tool illustration

Tool untuk mempermudah pekerjaanmu. Mau mendapatkan angka acak? Kamu bisa pakai Random Number Generator. Mau menghitung berat badan idealmu? Kamu bisa pakai BMI Calculator. Di sini tersedia berbagai macam tool yang bisa kamu gunakan secara gratis.

Telusuri Semua Tool Atau cari di Tool

Game Sederhana

Game illustration

Bosan? Bingung mau ngapain? Ayo main game-game sederhana, seperti Tic Tac Toe, Simple Math, dan semacamnya.

Telusuri Semua Game Atau cari di Game

Daftar Singkatan

Abbreviation illustration

Mungkin kamu pernah dengar atau lihat sebuah kata yang cukup asing, seperti YGY, GG, dan lainnya. Di sini, kamu bisa cari tahu apa sih arti dari kata-kata tersebut. Selain itu, kamu juga bisa mencari tahu mengenai abreviasi/singkatan lainnya yang mungkin kamu belum tahu sebelumnya di koleksi abreviasi yang sudah dikumpulkan.

Telusuri Semua Abbreviation Atau cari di Abbreviation