Tentang
Vectorizer tanpa wizard
AnyToSVG mengubah bitmap jadi SVG dengan keluarga algoritma yang sama seperti layanan online terkenal — tetapi dijalankan di dalam browser Anda, menampilkan hasilnya sebelum Anda menyentuh pengaturan apa pun, dan tidak pernah meminta Anda login.
Mengapa
Kenapa saya membuatnya
Catatan dari pengembang di balik AnyToSVG dan IconEditor.org.
Saya sudah membuat perangkat lunak selama hampir tiga puluh tahun, dan ternyata cukup banyak waktu terpakai untuk tugas kecil yang membosankan: memasukkan logo seseorang ke format yang bisa diperbesar. Klien mengirim PNG, percetakan meminta SVG, dan konverter online yang saya pakai menyambut dengan antrean upload, pemilih model, tiga calon palet, panel kualitas, panel pengelompokan warna dan — setelah pratinjau akhirnya tampak benar — formulir login dan hitungan kredit.
Anehnya, penelusuran itu sendiri tidak lambat dan tidak rahasia. Algoritma intinya, Potrace, sudah terbuka sejak 2003 dan menelusuri bitmap seukuran logo dalam hitungan milidetik. Wizard empat langkah itu ada bukan karena matematikanya membutuhkannya. Ia ada karena gambar harus dikirim ke server, diproses di sana, dan hasilnya harus diukur pemakaiannya.
Browser modern mengubah itu. Potrace bisa dikompilasi ke WebAssembly dan berjalan dengan kecepatan native di perangkat Anda sendiri, dan analisis warna di sekitarnya hanyalah JavaScript biasa. Jadi AnyToSVG mengerjakan seluruh tugasnya secara lokal: begitu gambar dijatuhkan, gambar dianalisis, pengaturan yang masuk akal dipilih, setiap warna ditelusuri, dan SVG muncul di samping gambar asli. Tidak ada yang diunggah, tidak ada yang dihitung, dan setiap slider menelusuri ulang seketika karena tidak ada perjalanan bolak-balik ke server.
Filosofinya sama dengan IconEditor.org, editor ikon Windows saya: ambil pekerjaan yang sering dilakukan orang, pertahankan bagian yang benar-benar bagus, dan buang semua yang ada hanya untuk membenarkan langganan.

Cara kerja
Apa yang terjadi saat Anda menaruh gambar
1 · Analisis
Histogram warna gambar menentukan apakah gambar itu desain warna solid, sketsa garis, atau sesuatu yang mirip foto, berapa banyak warna berbeda yang sebenarnya ada, dan di mana ambang batas hitam putih sebaiknya berada (metode Otsu).
2 · Gradasi, lalu warna
Wilayah yang warnanya berubah halus dicocokkan dengan model linear atau radial dan menjadi satu bentuk dengan gradasi SVG asli. Piksel sisanya dikuantisasi: warna dominan menjadi palet, wilayah kecil tetapi berbeda ditambahkan kemudian, dan halo anti-aliasing di antara wilayah dibersihkan.
3 · Lapisan
Isian ditumpuk dari area terbesar ke atas, dan setiap bentuk masuk satu piksel ke bawah tetangganya di atas, sehingga tidak ada celah tipis di antara bentuk yang bersebelahan — versi lebih ringan dari trik yang disebut "overlap" oleh layanan komersial. Bintik yang lebih kecil dari ukuran Hapus bintik digabung ke bentuk di sekitarnya, bukan dibuang.
4 · Penelusuran
Setiap lapisan adalah mask hitam putih yang diubah Potrace (dikompilasi ke WebAssembly) menjadi path Bézier yang halus. Penghalusan, penghapusan bintik, dan optimasi kurva adalah parameter standar Potrace, ditampilkan sebagai dua slider dan satu preset.
5 · Perakitan SVG
Koordinat Potrace dikembalikan ke kisi piksel asli, satu <path> per isian — warna solid atau <linearGradient> / <radialGradient> di dalam <defs> — dan tidak ada yang lain: tanpa transform, grup, atau metadata. Warna yang disembunyikan dan latar luar tidak disertakan.
6 · Tidak ada yang keluar dari browser
Semua di atas berjalan di Web Worker pada perangkat Anda. Satu-satunya pengecualian adalah format yang tidak bisa dibuka browser Anda (TIFF, PSD, HEIC, PDF): file itu dikonversi ke PNG di server kami, di memori, dan langsung dibuang.


Sengaja dibuat kecil
Kredit dan batasan
Mesin penelusurannya adalah Potrace karya Peter Selinger, dipakai di bawah lisensi GPL melalui build esm-potrace-wasm; teks lisensinya disertakan di samping skrip. Analisis warna, pelapisan, dan perakitan SVG adalah JavaScript milik AnyToSVG sendiri, disajikan tanpa minifikasi. Tidak ada skrip, font, atau pelacak pihak ketiga yang dimuat dari domain lain.
Batasan yang jujur: gambar ditelusuri pada maksimal 2048 piksel di sisi terpanjang, jadi hasil scan 6000 piksel dikecilkan dulu. Foto hasilnya seperti poster — itulah yang dilakukan penelusuran. Bayangan halus dideteksi dan ditulis sebagai gradasi SVG asli (linear atau radial), tetapi bayangan yang mengikuti bentuk rumit tetap disederhanakan menjadi beberapa warna solid. Penelusuran garis tengah untuk line art (path goresan tunggal untuk plotter pena) tidak didukung; bentuk selalu berupa garis tepi terisi.
Sekilas
Hal-hal pokok
- Harga
- Gratis
- Akun
- Tidak diperlukan
- Input
- PNG · JPG · GIF · WebP · BMP · SVG · TIFF · PSD · HEIC · PDF
- Output
- SVG · PNG (1× / 2× / 4×) · clipboard
- Warna
- 2 – 32, atau hitam putih
- Ukuran maks.
- 20 MB · ditelusuri pada ≤ 2048 px
- Penyimpanan
- Tidak ada di server
Ada pertanyaan, bug, atau ide?
Tulis ke [email protected] — atau langsung taruh gambar di konverter dan buktikan sendiri.