Lebar 64 kotak membuat foto 4:3 menjadi 64 × 48 kotak: tiap kotak dihitung warna rata-ratanya lalu diwarnai dengan warna palet terdekat
Mengubah gambar menjadi pixel art berarti membagi foto menjadi sejumlah kotak mendatar dan menurun, lalu mewarnai tiap kotak dengan satu warna. Setelah Anda menentukan jumlah kotak mendatar, konverter di atas menyesuaikan jumlah kotak menurun dengan rasio gambar asli (foto 640 × 480 px yang dibagi 64 kotak mendatar menjadi 48 kotak menurun), menghitung warna rata-rata piksel di dalam tiap kotak, lalu menggantinya dengan warna terdekat dari palet yang dipilih.
Jika gambar diseret ke kiri-kanan, gambar asli dan hasil pixel art dapat dibandingkan pada posisi yang sama. Bagian 'Jumlah kotak per warna' di bawahnya menunjukkan berapa kotak yang diwarnai untuk tiap warna. Saat disimpan, satu kotak diperbesar dengan kelipatan bulat seperti 4×, 8×, atau 16× menjadi PNG, sehingga tepinya tidak kabur. Gambar hanya diproses di dalam browser dan tidak dikirim ke server.
Kapan foto diubah menjadi pixel art
- Saat membuat foto profil atau stiker: Dengan 32–64 kotak mendatar, kontur wajah masih cukup terlihat. Makin kecil ikonnya, makin sedikit kotak dan warna yang sebaiknya dipakai; sekitar 8 warna membuat gambar lebih tegas.
- Saat butuh sketsa dasar sprite atau tile gim: Masukkan PNG transparan yang latarnya sudah dihapus, lalu aktifkan garis tepi, maka hasilnya menjadi draf sebelum dirapikan dengan tangan. Anda juga bisa langsung mencocokkannya dengan palet tetap seperti PICO-8.
- Saat menyusun pola manik-manik atau sulam silang: Satu kotak setara satu manik atau satu tusukan. Jika kisi diaktifkan, garis yang lebih gelap muncul tiap 10 kotak sehingga mudah dihitung, dan 'Jumlah kotak per warna' adalah jumlah yang dibutuhkan untuk tiap warna.
- Saat butuh thumbnail atau poster bergaya retro: Empat tingkat hijau Game Boy atau dua warna hitam-putih yang dipadukan dengan dithering membuat gambar tampak seperti layar jadul.
Urutan mengubah gambar menjadi pixel art
- Membagi kotak: Jika jumlah kotak mendatar adalah w, jumlah kotak menurun adalah w × tinggi asli ÷ lebar asli yang dibulatkan. Rentang piksel dalam satu kotak ditentukan oleh batas hasil pembagian lebar asli dengan w.
- Warna rata-rata kotak: Nilai merah, hijau, dan biru piksel di dalam kotak dirata-ratakan dengan bobot opasitas. Jika rata-rata opasitas setengah atau lebih, kotak memakai warna rata-rata itu; jika kurang dari setengah, kotak dibiarkan transparan.
- Menentukan palet: 'Otomatis' mengelompokkan warna kotak sebanyak jumlah warna dengan median cut (Heckbert, 1982), yaitu membagi dua berulang kali pada median kanal warna yang paling lebar sebarannya, lalu menyempurnakan rata-rata kelompok sebanyak empat kali untuk menyusun palet. PICO-8, CGA, Game Boy, dan hitam-putih memakai warna tetap.
- Memilih warna terdekat: Selisih antara warna kotak dan warna palet diukur dengan jarak di ruang warna OKLab (Ottosson, 2020), yang dibuat mendekati cara mata manusia menilai terang dan selisih warna, lalu kotak diwarnai dengan warna terdekat. Jika dithering aktif, warna dicampur pada tahap ini.
- Memperbesar dan menyimpan: Satu kotak diperbesar apa adanya menjadi n × n piksel (tanpa interpolasi yang mencampur warna sekitar). Jika 64 × 48 kotak disimpan dengan kelipatan 8, hasilnya PNG 512 × 384 px.
| Empat piksel dalam kotak (2 × 2) | Rata-rata opasitas | Hasil kotak |
|---|---|---|
| Dua merah (255, 0, 0) + dua biru (0, 0, 255) | 100% | (128, 0, 128) ungu |
| Satu merah + satu biru + dua transparan | 50% | (128, 0, 128), buram karena tepat setengah |
| Satu merah + tiga transparan | 25% | Kotak transparan |
Piksel transparan tidak ikut dalam rata-rata warna, sehingga baris kedua juga menjadi ungu. Jika ungu (128, 0, 128) ini diwarnai dengan palet PICO-8, hasilnya #7E2553 (ungu tua), yang paling dekat menurut jarak OKLab.
Memilih jumlah kotak: untuk foto 4:3
Setelah jumlah kotak mendatar ditentukan, jumlah kotak menurun dan ukuran simpan ikut tertentu. Tabel di bawah berlaku untuk foto berukuran 4:3 seperti 640 × 480 px.
| Kotak mendatar | Kotak menurun | Total kotak | Ukuran simpan 8× | Kesan |
|---|---|---|---|---|
| 16 | 12 | 192 | 128 × 96 px | Ikon, hanya bentuk yang tersisa |
| 32 | 24 | 768 | 256 × 192 px | Stiker, kontur wajah |
| 64 | 48 | 3.072 | 512 × 384 px | Foto profil, orang dan benda masih dikenali |
| 128 | 96 | 12.288 | 1.024 × 768 px | Pemandangan, detail masih terlihat |
| 256 | 192 | 49.152 | 2.048 × 1.536 px | Mendekati foto |
Sebagai acuan, layar Game Boy awal berukuran 160 × 144 piksel (Pan Docs) dan layar PICO-8 berukuran 128 × 128 piksel (manual PICO-8). Untuk gambar yang memenuhi layar tersebut, patokannya 128–160 kotak mendatar.
Enam palet
| Palet | Jumlah warna | Cara warna ditentukan | Cocok untuk gambar |
|---|---|---|---|
| Otomatis | 2–64 (bawaan 16) | Dipilih dari warna kotak gambar dengan median cut, lalu disempurnakan | Foto, saat suasana aslinya ingin dipertahankan |
| Warna asli | Tidak dikurangi | Warna rata-rata kotak apa adanya | Mosaik, saat hanya jumlah kotak yang dikurangi |
| PICO-8 | 16 | Warna tetap konsol fantasi PICO-8 dari Lexaloffle | Gambar bergaya gim yang cerah dan tegas |
| CGA | 16 | 16 warna RGBI pada IBM CGA tahun 1981 (nomor 6 berwarna cokelat #AA5500) | Kesan layar PC era DOS |
| Game Boy | 4 | Empat tingkat hijau, nilai bawaan emulator BGB | Kesan konsol gim genggam |
| Hitam-putih | 2 | #000000, #FFFFFF | Bersama dithering, kesan cetakan grafis atau koran |
Palet tetap tidak memakai warna yang tidak ada di gambar. Jika gambar contoh diubah ke PICO-8, hanya warna yang benar-benar dipakai pada kotak, dari 16 warna itu, yang muncul di 'Jumlah kotak per warna'. Layar Game Boy awal menampilkan empat tingkat hijau, tetapi tidak ada nilai RGB resmi, sehingga warnanya sedikit berbeda di tiap emulator. NES (Famicom) tidak dimasukkan karena warna layarnya bergantung pada TV dan rangkaian videonya, sehingga tidak ada satu palet RGB yang pasti (NESdev Wiki).
Nilai palet PICO-8 dan Game Boy, ukuran layar Game Boy dan PICO-8, serta bobot dithering dicek langsung pada teks asli sumber di atas pada 2026-10-12. Nilai-nilai ini bukan angka peraturan yang berubah tiap tahun.
Dithering: mencampur titik untuk membuat warna perantara
Jika warna terlalu sedikit, bagian yang berubah halus seperti langit atau kulit terpecah menjadi beberapa gumpalan. Dithering adalah cara mencampur dua warna yang berdekatan per titik, sehingga dari jauh tampak seperti warna di antara keduanya.
| Metode | Prinsip | Cocok untuk gambar |
|---|---|---|
| Tanpa | Satu warna terdekat untuk tiap kotak | Gambar dengan bidang sederhana, ikon |
| Pola kisi | Matriks Bayer 4 × 4 (Bayer, 1973) menggeser warna tiap kotak sedikit demi sedikit, sehingga tercampur dalam pola teratur | Layar bergaya gim retro, hitam-putih atau 4 warna |
| Difusi galat | Selisih warna yang tersisa setelah mewarnai diteruskan: 7/16 ke kanan, 3/16 ke kiri bawah, 5/16 ke bawah, 1/16 ke kanan bawah (Floyd–Steinberg, 1976) | Foto, gambar dengan banyak gradasi |
Jika jumlah kotak sedikit, dithering bisa membuat titik tampak kasar. Pilihan jadi lebih mudah bila Anda memakai 'Tanpa' pada 32 kotak mendatar atau kurang, dan mencoba 'Difusi galat' lebih dulu pada foto dengan 64 kotak atau lebih. 'Warna asli' tidak mengurangi jumlah warna, jadi tidak memerlukan dithering.
Kesalahan yang sering terjadi
- Menyimpan kecil lalu memperbesar di program lain: Kebanyakan program gambar mencampur warna sekitar saat memperbesar, sehingga tepinya kabur. Simpan sejak awal dengan ukuran yang diperlukan, misalnya 8× atau 16×.
- Menyimpan ulang PNG sebagai JPG: Kompresi JPG menimbulkan noda di sekitar tepi kotak dan mengisi kotak yang transparan. Biarkan pixel art tetap berformat PNG.
- Menambah kotak melebihi gambar asli: Jika gambar selebar 300 px dibagi 512 kotak, kotaknya hanya lebih banyak daripada piksel aslinya dan tidak membuat gambar lebih detail. Konverter memberi tahu hal ini di bawah jumlah kotak.
- Mengurangi warna sambil mematikan dithering: Mewarnai wajah atau langit dengan 4–8 warna menimbulkan pita warna. Tambah warna hingga 16 atau lebih, atau aktifkan difusi galat.
- Membiarkan latar yang rumit: Jika kotaknya sedikit, latar dan orang bercampur. Jika PNG transparan tanpa latar dimasukkan, kotak transparan dibiarkan kosong, dan saat garis tepi aktif, garis muncul di sekeliling orang.
- Mengira ukuran tetap sama setelah diunggah ke media sosial: Tiap layanan bisa memperkecil atau mengompresi ulang gambar yang diunggah. Jika kotak menjadi buram, ubah kelipatan simpan lalu unggah lagi.
Batasan dan catatan
- Perhitungan hanya dilakukan di dalam browser. Saat menghitung rata-rata kotak, gambar asli diperkecil hingga sisi terpanjang 1.024 px atau kurang sebelum dibaca, dan sampai 512 kotak mendatar, perbedaan hasilnya hampir tidak ada.
- Kotak mendatar 8–512 dan kotak menurun hingga 1.024. Ukuran simpan hanya bisa dipilih sampai satu sisi 4.096 px dan luas 4.096 × 4.096 px, karena batas kanvas browser pada perangkat iOS adalah 4.096 × 4.096 (MDN).
- Hanya format yang bisa dibuka browser yang diterima. GIF animasi hanya memakai adegan pertama, dan format yang tidak bisa dibuka browser Anda (HEIC di banyak browser) harus diubah ke JPG atau PNG lebih dulu. File diterima sampai 40MB.
- Palet otomatis selalu memberi hasil yang sama untuk gambar dan pengaturan yang sama, tetapi tidak dijamin lebih baik daripada kombinasi warna yang dipilih sendiri. Jika warnanya kurang cocok, ubah jumlah warna lalu bandingkan.
- Garis tepi memakai cara sederhana: kotak yang cukup lebih gelap daripada kotak tetangga, dan kotak di samping kotak transparan, diganti dengan warna garis. Jadi hanya garis yang diinginkan tidak bisa dipilih secara khusus.
- Hanya warna perangkat lama seperti Game Boy dan CGA yang ditiru. Batasan perangkat keras, misalnya jumlah warna yang boleh dipakai per tile atau sprite, tidak diterapkan.
Sumber
- 01Lexaloffle — PICO-8 User ManualLayar 128 × 128, palet tetap 16 warna (nomor warna 0–15) — dicek 2026-10-12
- 02Lospec — PICO-8 PaletteNilai HEX 16 warna PICO-8 (Lexaloffle Games). Empat warna Game Boy memakai nilai Nintendo Gameboy (BGB) Palette di situs yang sama
- 03Pan Docs — SpecificationsLayar Game Boy awal (DMG) 160 × 144, empat tingkat hijau
- 04NESdev Wiki — PPU palettesKeluaran video komposit tidak punya satu palet tunggal yang cocok untuk semua gim; entri palet menunjuk satu dari 64 warna
- 05Heckbert, P. (1982). Color image quantization for frame buffer displayACM SIGGRAPH Computer Graphics 16(3), 297–307. Pengurangan warna dengan median cut
- 06Björn Ottosson — A perceptual color space for image processing2020-12-23. Transformasi OKLab (sRGB linear → LMS → akar pangkat tiga → Lab)
- 07Wikipedia — Floyd–Steinberg ditheringFloyd & Steinberg (1976), An adaptive algorithm for spatial grey scale, Proceedings of the SID 17: 75–77. Bobot galat 7·3·5·1/16. Di situs yang sama juga ada Ordered dithering (Bayer, 1973, IEEE ICC)
- 08Wikipedia — Color Graphics AdapterIBM CGA (1981) 16 warna RGBI, nomor 6 cokelat #AA5500
- 09MDN — <canvas>: Maximum canvas sizeBatas perangkat iOS 4.096 × 4.096; jika terlampaui, kanvas tidak dapat dipakai
Pertanyaan yang sering diajukan
Berapa jumlah kotak yang sebaiknya dipakai untuk mengubah foto menjadi pixel art?
Tergantung kegunaannya. Ikon biasanya 16–32 kotak mendatar, foto profil atau stiker 32–64 kotak, dan pemandangan sekitar 128 kotak. Foto 4:3 yang dibagi 64 kotak mendatar menjadi 48 kotak menurun, total 3.072 kotak. Mengganti chip jumlah kotak sambil melihat pratinjau per palet di bawahnya akan memudahkan pilihan.
Sebaiknya berapa jumlah warnanya?
Pada foto, sekitar 16 warna masih mempertahankan suasana aslinya, sedangkan 8 warna atau kurang menghasilkan gaya gambar yang sederhana. Jika muncul pita warna pada bagian yang berubah halus seperti wajah atau langit, tambah warna atau aktifkan dithering (difusi galat). Pada gambar dengan warna kotak yang sederhana, warna yang terpakai bisa lebih sedikit daripada jumlah yang dipilih.
Apa itu dithering dan kapan sebaiknya diaktifkan?
Dithering adalah cara mencampur dua warna yang berdekatan per titik agar dari jauh tampak seperti warna di antaranya. Pola kisi (Bayer 4 × 4) memberi kesan gim retro dengan pola teratur, sedangkan difusi galat (Floyd–Steinberg) meneruskan selisih warna yang tersisa ke kotak di sebelahnya sehingga gradasi foto tampak alami. Untuk ikon dengan kotak sedikit, lebih rapi bila dimatikan.
Mengapa PNG yang disimpan tampak buram?
Konverter ini menyimpan satu kotak dengan memperbesarnya apa adanya menurut kelipatan bulat, sehingga filenya sendiri tidak buram. Jika Anda menyimpan dengan kelipatan kecil lalu program lain atau media sosial memperbesar atau mengompresi ulang gambar, warna di sekitarnya bercampur dan gambar jadi buram. Simpan sejak awal dengan ukuran yang diperlukan, misalnya 8× atau 16×, dan pertahankan sebagai PNG.
Apakah latar transparan tetap dipertahankan?
Ya. Jika rata-rata opasitas piksel di dalam kotak kurang dari setengah, kotak dibiarkan transparan dan disimpan transparan di PNG. Jika setengah atau lebih, kotak diwarnai dengan warna rata-rata piksel yang tersisa setelah piksel transparan dikecualikan. Jika garis tepi diaktifkan pada gambar tanpa latar, kotak di sekeliling gambar berubah menjadi warna garis.
Apakah gambar yang saya unggah disimpan di server?
Tidak. Gambar dibuka dan dihitung di dalam browser dan tidak dikirim ke server. Gambar hilang saat halaman ditutup atau gambar lain dipilih. PNG yang disimpan hanya ada di folder unduhan perangkat Anda.
Apakah warna palet Game Boy dan PICO-8 akurat?
PICO-8 memakai 16 warna tetap yang ditetapkan Lexaloffle apa adanya. Layar Game Boy awal menampilkan empat tingkat hijau, tetapi tidak ada nilai RGB resmi, sehingga konverter ini memakai empat warna bawaan emulator BGB. Yang ditiru hanya kesan warna perangkat lama; batasan perangkat keras seperti jumlah warna yang boleh dipakai per tile tidak diterapkan.
Apakah foto HEIC atau GIF animasi bisa diubah?
Hanya format yang bisa dibuka browser yang bisa diubah. Pada browser yang tidak bisa membuka HEIC, ubah dulu ke JPG atau PNG, dan GIF animasi hanya diubah pada adegan pertamanya. File diterima sampai 40MB, dan saat menghitung, sisi terpanjang diperkecil hingga 1.024 px atau kurang sebelum dibaca.