PerfectVector
Oleh Jay Lee

Mengapa SVG Anda Terlihat Berpiksel dan Cara Memperbaikinya

SVG sungguhan tetap bisa menunjukkan piksel: gambar tersemat, penampil yang meraster, atau ikon kecil yang terlihat lembut. Berikut diagnosis cepat dan perbaikannya.

8 menit baca
Di halaman ini

SVG seharusnya bisa diskalakan dengan bersih, jadi ketika tetap menunjukkan tepi kotak-kotak, mulailah dari tiga penyebab umum. File mungkin berisi piksel sebenarnya, aplikasi mungkin meraster pratinjau atau hasil impornya, atau vektor sungguhan hanya terlihat lembut pada kisi piksel yang mungil. Setiap penyebab memerlukan perbaikan berbeda, dan diagnosis singkat menunjukkan yang sedang Anda hadapi. Satu hal yang tidak dibahas artikel ini: logo PNG atau JPG yang berpiksel ketika diperbesar. File itu sejak awal bukan SVG, dan masalah tersebut memiliki perbaikan sendiri.

Diagnosis 30 detik
  • Perbesar jauh (500%+) dalam dua penampil. Tampilan kotak-kotak di setiap penampil mengarah pada konten raster. Jika hanya satu aplikasi terlihat kotak-kotak, aplikasi itu kemungkinan meraster pratinjau.
  • Buka SVG dalam editor teks. Tag <image> dengan blob data:image/png;base64,… panjang berarti “vektor” Anda adalah bitmap yang menyamar.
  • Gunakan pemeriksaan file untuk memutuskan. Zoom menimbulkan dugaan; elemen <image> atau objek gambar persegi panjang memastikan adanya piksel tersemat.

Penyebab 1: ada piksel dalam SVG Anda

Ini jebakan gambar tersemat. SVG adalah format wadah, dan spesifikasi SVG 2 mengizinkan elemen <image> menyematkan atau merujuk konten raster. Jika perlu membedakan PNG tertaut dari data tersemat atau SVG bersarang, gunakan pemeriksaan SVG berkonten campuran. Alat dapat menggunakan kemampuan itu dengan beberapa cara:

  • Konversi palsu. Sebagian alat “PNG ke SVG” tidak melakukan tracing. Alat membungkus bitmap dalam tag <image> dan mengembalikannya dengan ekstensi .svg. Hasil diskalakan sama buruknya dengan PNG asli karena memang PNG asli.
  • Ekspor yang meraster bagian sulit. Aplikasi desain mengekspor bagian yang bisa sebagai path dan diam-diam meraster bagian yang tidak bisa: drop shadow, blur, mesh gradient, isian gambar. Inilah cara logo menjadi tajam di mana-mana kecuali satu lengkungan atau efek, misteri “sebagian berpiksel” yang sering dibahas forum desain.
  • Konten foto. Foto tidak dapat menjadi path bersih, sehingga alat yang “mengonversi” foto ke SVG sering menyematkannya atau membuat perkiraan terposterisasi. Alat peta bahkan sengaja melakukan ini untuk layer gradasi terang-gelap, yang sah karena gradasi tersebut pada dasarnya memiliki perubahan warna berkesinambungan.
  • Pembungkus format. File dapat membawa data vektor yang bisa dibaca satu aplikasi tetapi tidak aplikasi lain. Ketika aplikasi menemukan payload yang tidak dipahami, aplikasi memakai pratinjau raster tersimpan, sehingga Anda melihat piksel di satu program sedangkan program lain menampilkan vektor bersih.

Cara memastikan: buka .svg dalam editor teks mana pun dan cari <image. Blob base64 adalah penyebabnya. Di Inkscape atau Illustrator, klik area buram: jika seleksi berupa satu objek “image” persegi panjang, bukan path, jawabannya sama. Ini pemeriksaan yang sama untuk menemukan SVG palsu dari alat AI dan alat ekspor, dan memerlukan kurang dari satu menit.

Perbaikannya: piksel harus menjadi path, yang berarti benar-benar memvektorisasi konten raster. Proses gambar asli (atau gambar tersemat) melalui konversi gambar ke vektor sungguhan dan ganti elemen <image> dengan hasil trace. Jika konten tersemat berupa foto, vektorisasi memiliki keterbatasan sendiri; terkadang perbaikan yang tepat adalah menerima raster di tempat yang memang sesuai untuk raster.

Petunjuk dalam file itu sendiri
File SVG terbuka dalam editor teks, menunjukkan tag image dengan blob data base64 panjang, bukan elemen path vektor
Vektor sungguhan terdiri dari elemen path. Tag image dengan blob base64 adalah bitmap yang memakai ekstensi .svg.

Penyebab 2: file baik, penampil merasternya

Jika browser atau Inkscape menampilkan path tajam sementara satu aplikasi terlihat kotak-kotak, berhenti mengedit file. Pipeline impor atau pratinjau aplikasi itulah masalahnya:

  • Sebagian pipeline impor aplikasi meraster SVG pada ukuran impor atau pratinjau. Memperbesar gambar cache setelahnya berarti memperbesar bitmap. Perbaikan di aplikasi adalah mengimpor atau merender pada resolusi tujuan.
  • After Effects dapat terus meraster layer vektor saat layer ditransformasikan; Adobe mendokumentasikan saklar Continuously Rasterize untuk layer vektor. Jika hanya pratinjau komposisi terlihat kasar, periksa resolusi pratinjau serta saklar layer sebelum mengubah SVG.
  • Illustrator dapat sengaja menampilkan karya melalui Pixel Preview. Matikan View > Pixel Preview sebelum menyimpulkan path itu sendiri berpiksel.
  • Thumbnail dan pratinjau. Thumbnail pengelola file serta pratinjau cepat merupakan rasterisasi resolusi rendah. Tampilan itu tidak menjelaskan keadaan file.

Uji universal: buka file yang sama dalam browser atau Inkscape. Jika tajam di sana, SVG sehat dan perbaikannya berada pada pengaturan impor atau pratinjau aplikasi lain.

Untuk aset game, periksa alur impor dan rasterisasi SVG Godot atau cara impor SVG Unity untuk editor serta sistem UI Anda sebelum menganggap sumber tidak memiliki path vektor.

Penyebab 3: vektor sungguhan yang lembut pada ukuran kecil

Ikon berada pada 16 hingga 24 piksel, dan pada ukuran itu kurva sempurna secara matematis harus ditempatkan pada kisi piksel kasar. Anti-aliasing membagi piksel tepi menjadi abu-abu, sehingga hasil terbaca sebagai “sedikit buram”, khususnya untuk stroke tipis serta posisi setengah piksel. Memperbesar menunjukkan tepi vektor yang sepenuhnya tajam, yang menandakan ini bukan jebakan gambar tersemat.

Perbaikannya pada desain: sejajarkan tepi horizontal dan vertikal dengan piksel utuh pada ukuran tujuan, gunakan lebar stroke bernilai piksel utuh, dan pilih set ikon yang digambar untuk ukuran yang digunakan. Data path sangat presisi dari ekspor alat desain dapat memperburuk kelembutan pada ukuran mungil; path sederhana dirender lebih dapat diprediksi.

Penyebab dan perbaikan sekilas

Yang terlihatPenyebabPerbaikan
Kotak-kotak dalam setiap penampil, dengan elemen <image> dalam fileGambar raster tersemat dalam SVGBenar-benar vektorisasikan konten, ganti <image>
Tajam pada satu lengkungan, berpiksel pada yang lainEkspor meraster efek atau isianBangun ulang elemen sebagai path, atau vektorisasikan seluruh grafis
Tajam di browser, berpiksel dalam satu aplikasiAplikasi meraster pada impor atau pratinjauPerbaiki pengaturan impor/pratinjau aplikasi, bukan file
Tajam pada 100%, kabur sebagai ikon kecilKelembutan kisi piksel pada vektor sejatiSejajarkan tepi dan stroke dengan piksel pada ukuran tujuan
“Berpiksel” hanya dalam thumbnailRasterisasi pratinjau resolusi rendahAbaikan; periksa rendering sebenarnya

Cara mencegah piksel masuk ke SVG

Pencegahan terutama dilakukan pada saat konversi atau ekspor. Sebelum mengandalkan SVG, lakukan pemeriksaan editor teks sekali: elemen <path> baik; blob <image> bukan vektor. Ketika mengonversi gambar, gunakan konverter yang men-trace, bukan membungkus, dan pastikan hasil dengan memilih bentuk individual. Ketika mengekspor dari alat desain, ratakan atau expand efek menjadi path dahulu, karena apa pun yang tidak bisa dijelaskan alat ekspor sebagai vektor akan dikirim sebagai piksel. Ingat apa sebenarnya SVG itu: ekstensi menjanjikan format, bukan isi.

Penerapannya dengan PerfectVector

PerfectVector menangani jebakan ini dengan benar: men-trace gambar menjadi path asli, tidak pernah membungkusnya. Unggah PNG atau JPG dan hasilnya berupa bentuk yang bisa dipilih, diwarnai ulang, serta diperbesar terus, setiap warna sebagai objek yang bisa diedit sendiri dan tanpa elemen <image> di mana pun dalam file. Jika baru menemukan “SVG” Anda ternyata bitmap yang menyamar, konversikan gambar asli dengan benar dan lakukan pemeriksaan editor teks yang sama pada keluaran. Melihat perbedaannya sekali merupakan cara tercepat agar tidak terjebak lagi. Konversi awal gratis tanpa kartu kredit.

Gambar tersemat, diperbesar
Logo dalam file SVG yang diperbesar jauh, menunjukkan piksel kotak-kotak karena file memiliki bitmap tersemat
Piksel yang menyamar: zoom memperlihatkan bitmap yang tersembunyi dalam file .svg.
Vektor sungguhan, diperbesar
Logo yang sama sebagai SVG yang benar-benar divektorisasi pada tingkat zoom yang sama, dengan tepi path sepenuhnya tajam
Logo yang sama benar-benar di-trace menjadi path: tajam pada zoom berapa pun, tepinya tetap matematis.

FAQ

Mengapa SVG saya terlihat berpiksel ketika diperbesar? Zoom saja tidak membuktikan SVG berisi piksel karena sebagian aplikasi meraster pratinjaunya. Buka file di browser atau Inkscape, lalu periksa sumber untuk elemen <image> atau pilih area buram dan periksa apakah berupa objek gambar persegi panjang. Jika pemeriksaan memastikan konten raster tersemat, vektorisasikan konten dan ganti elemen image.

Bagaimana mengetahui apakah SVG memiliki gambar tersemat? Buka dalam editor teks mana pun dan cari <image. String data:image/png;base64 panjang merupakan bitmap tersemat dalam file. Anda juga dapat mengeklik area buram di Inkscape atau Illustrator: jika terpilih sebagai satu objek gambar persegi panjang, bukan path, gambar disematkan.

Mengapa SVG saya berpiksel dalam satu aplikasi tetapi baik di browser? Aplikasi merasternya. Mesin game meraster SVG pada ukuran impor, pratinjau After Effects meraster pada resolusi komposisi, dan sebagian aplikasi secara bawaan merender gambar tersemat dengan interpolasi kotak-kotak. Jika browser atau Inkscape menampilkan tajam, file baik; sesuaikan pengaturan aplikasi.

Bisakah SVG yang memiliki gambar tersemat diperbaiki? Ya. Ambil raster asli (atau ekstrak yang tersemat) dan proses melalui vectorizer sungguhan, lalu gunakan hasil trace sebagai pengganti elemen image. Jika konten tersemat berupa foto, harapkan perkiraan vektor bergaya, bukan salinan setia, karena foto tidak bisa diringkas menjadi path bersih.

Mengapa ikon SVG saya terlihat buram pada ukuran kecil? Biasanya itu kelembutan kisi piksel, bukan gambar tersemat. Pada 16 hingga 24 piksel, anti-aliasing mengubah tepi yang tidak sejajar menjadi piksel abu-abu. Sejajarkan tepi dan lebar stroke dengan piksel utuh pada ukuran tujuan, dan ikon menjadi lebih tajam. Perbesar untuk memastikan path itu sendiri tajam.

Apakah mengonversi PNG ke SVG selalu menghasilkan vektor sungguhan? Tidak. Sebagian alat benar-benar men-trace gambar menjadi path, dan sebagian hanya membungkus PNG dalam wadah SVG. Keluaran hanya diskalakan bersih dalam kasus pertama. Periksa tag image pada setiap file konversi dan pilih konverter yang menunjukkan bentuk yang bisa diedit dalam hasil.

Sources

  1. W3C: SVG 2 embedded content — Mendefinisikan elemen SVG <image> dan konten raster dalam dokumen SVG.
  2. Adobe Illustrator: Viewing artwork — Mendokumentasikan Pixel Preview dan mode tampilan lainnya.
  3. Adobe After Effects: Layers — Mendokumentasikan saklar Continuously Rasterize untuk layer vektor.
  4. Adobe Illustrator: Create pixel-perfect art — Menjelaskan kesejajaran dengan kisi piksel untuk karya ukuran kecil.

Mencurigai file yang sedang digunakan? Jalankan uji zoom, lalu konversikan gambar asli menjadi SVG sungguhan berbasis path dan bandingkan. Piksel bisa tersembunyi; path tidak.

Lebih banyak dari blog

PerfectVector

Mulai dengan SVG yang lebih rapi
dan lebih mudah diedit

Tanpa kartu kredit