Potrace PNG ke SVG: Tangani Alfa, Pertahankan Lubang
Konversikan PNG dengan Potrace setelah menyiapkan saluran alfa-nya. Ikuti alur kerja PGM yang telah diuji, bandingkan ambang batas, dan periksa latar belakang dan lubang dalam SVG.
Di halaman ini
Untuk mengonversi PNG ke SVG dengan Potrace, siapkan bitmap skala abu-abu terlebih dahulu, lalu lacak dengan potrace --svg. Untuk karya seni gelap pada piksel transparan, gabungkan gambar ke dalam matte putih sebelum menyimpan bitmap. Periksa bentuk ambang batas dan bukaan dalamnya sebelum menerima SVG.
Standar Potrace 1.16 membaca PBM, PGM, PPM dan BMP, bukan PNG secara langsung. Manual resmi-nya menjelaskan operasi penelusuran monokrom: bayangan antara menjadi hitam atau putih. Alur kerja di bawah ini menciptakan geometri padat dengan wilayah kosong, alih-alih mempertahankan nilai alfa berkelanjutan PNG.
Jika Anda lebih menyukai alur kerja browser untuk gambar yang sudah Anda miliki, PerfectVector menawarkan konversi gambar-ke-jalur dan pratinjau gratis. Mulai gratis dengan gambar Anda sendiri, lalu bandingkan siluet, bukaan kecil, dan warnanya dengan sumbernya. Buka kunci hasilnya sebelum mengedit atau mengekspor. Resep Potrace lokal tetap berguna ketika Anda menginginkan pra-pemrosesan yang eksplisit dan pengaturan perintah yang dapat diulang.
Apa yang Anda butuhkan sebelum menelusuri
Gunakan Potrace yang dapat dieksekusi, Python 3 dengan Pillow, dan PNG asli. Resep ini diterapkan dengan Potrace 1.16 dan Pillow 11.3.0. Simpan salinan masukan dan kerjakan di folder terpisah sehingga setiap varian ambang batas memiliki nama file berbeda.
Kasus awalnya adalah logo, ikon, atau gambar gelap dengan latar belakang terang atau transparan. Jika subjek Anda terang di atas gelap, tentukan cara membalikkan atau menyiapkan gambar sebelum menerapkan resep ini. Untuk alur kerja editor interaktif, lihat Bitmap Jejak Inkscape.
matte adalah latar belakang solid yang digunakan untuk mengatasi piksel transparan sebelum dijiplak. ambang batas adalah batas kecerahan yang membagi gambar yang disiapkan menjadi latar depan dan latar belakang. Pilihan tersebut terjadi sebelum kontur menjadi geometri SVG.
1. Selesaikan transparansi sebelum menyimpan bitmap
PNG menyimpan warna dan opacity secara terpisah. Saluran alfa menjelaskan opasitas setiap piksel. Spesifikasi PNG menjelaskan representasi ini; piksel yang sepenuhnya transparan masih dapat membawa nilai RGB. Menghapus saluran alfa tidak menggabungkan piksel tersebut ke latar belakang putih yang mungkin Anda lihat di penampil gambar.
Untuk tanda gelap, letakkan gambar di atas putih dengan sengaja. Cuplikan Python ini membuka artwork.png, menggabungkannya menjadi gambar putih berukuran sama, mengonversi hasilnya menjadi skala abu-abu dan menyimpan artwork.pgm:
from PIL import Image
src = Image.open("artwork.png").convert("RGBA")
matte = Image.new("RGBA", src.size, "white")
gray = Image.alpha_composite(matte, src).convert("L")
gray.save("artwork.pgm")alpha_composite dokumentasi Pillow mendefinisikan gambar kedua sebagai gabungan dari gambar pertama. Kedua gambar di sini memiliki dimensi dan mode RGBA yang serasi.
Buka PGM yang telah disiapkan sebelum menjiplak. Latar belakang luarnya harus berwarna putih, latar depannya seharusnya gelap, dan celah-celah penting terlihat. Persegi panjang hitam pada tahap ini merupakan masalah prapemrosesan; mengubah aturan pengisian SVG nantinya tidak dapat memulihkan pembukaan yang tidak pernah mencapai pelacak.

2. Telusuri PGM yang telah disiapkan
Jalankan ini di folder yang berisi artwork.pgm:
potrace artwork.pgm --svg --blacklevel 0.5 --turdsize 2 --output artwork.svg--blacklevel 0.5 memilih batas skala abu-abu. --turdsize 2 menjaga penekanan bintik kecil default Potrace tetap eksplisit. Gunakan nama keluaran baru saat Anda mengubah pengaturan, lalu bandingkan file daripada menimpa referensi Anda berulang kali.
Ubah satu kontrol pada satu waktu:
| Kontrol | Apa yang harus diulas |
|---|---|
--blacklevel | Apakah tanda samar menjadi latar depan dan bukaan sempit tetap kosong |
--turdsize | Apakah bentuk kecil yang terisolasi merupakan kebisingan atau detail yang disengaja |
--alphamax | Perawatan sudut; terlepas dari namanya, ini bukanlah kontrol opacity |
Ambang batas tingkat hitam yang lebih tinggi dapat menyertakan lebih banyak piksel abu-abu terang di latar depan. Itu bisa memperkuat garis samar atau menutup celah cahaya. Nilailah bitmap yang telah disiapkan dan kontur yang dihasilkan secara bersamaan. Pemulusan tidak dapat merekonstruksi penghitung setelah ambang batas terisi.
Apa yang ditunjukkan oleh dua gambar uji asli
Kami membuat dua 256 × 256 PNG yang dikontrol dan menjalankan perintah prapemrosesan dan Potrace di atas. Salah satunya adalah cincin hitam dengan piksel transparan di luar dan di dalamnya. Yang lainnya adalah tanda gelap buram dengan penghitung abu-abu sempit, bukaan tertutup di dalam tanda tersebut. Kami memeriksa SVG yang dihasilkan dengan penyaji dan memeriksa transparansi tengah dan luarnya.
| Masukan dan persiapan | Hasil SVG yang diamati |
|---|---|
| Cincin transparan, alfa dibuang sebelum konversi skala abu-abu | Kanvas hitam berisi; bagian luar dan bukaan yang dimaksudkan menjadi latar depan |
| Cincin yang sama, digabungkan menjadi warna putih sebelum konversi skala abu-abu | Bagian luar dan tengahnya kosong; cincin itu tetap terisi |
| Penghitung abu-abu sempit, komposit putih, tingkat hitam 0,5 | Konternya tetap terbuka |
| Gambar counter yang disiapkan sama, blacklevel 0.8 | Konter terisi |
Piksel tak kasat mata pada kontrol cincin membawa nilai RGB hitam. Mengabaikan alpha akan mengekspos nilai-nilai tersebut ke ambang batas. Versi komposit putih menyelesaikannya menjadi putih terlebih dahulu. Ini menjelaskan kotak hitam sampel itu; bukan berarti setiap PNG akan mengalami kegagalan yang sama.
Tes penghitung menjaga input dan pengaturan lainnya tetap konstan. Hanya ambang batasnya yang berubah. Hasilnya menunjukkan mengapa jejak yang terlihat lebih gelap belum tentu merupakan jejak yang lebih baik. Periksa fitur yang Anda perlukan daripada memilih pengaturan dengan siluet terberat.
Ini adalah pemeriksaan digital dari dua perlengkapan asli, tanpa gambar raster tertanam dalam keluaran SVG-nya. Kami tidak membandingkan kualitas Potrace dengan PerfectVector, mengimpor file ke pemotong atau menguji hasil fisik.
3. Periksa lubang dan latar belakang pada SVG yang disimpan
Tempatkan SVG di atas latar belakang yang kontras. Latar belakang tersebut harus terlihat melalui area luar dan setiap bukaan yang diinginkan. Cat putih bisa menyerupai lubang di halaman putih, jadi gambar mini saja tidak cukup.
jalur gabungan SVG dapat menggambarkan kontur luar dan bukaan dalam dalam satu objek. Jika bukaan sudah tidak ada pada geometri yang ditelusuri, kembali ke PGM dan ambang batas. Jika ada di satu perender tetapi terisi setelah impor, selidiki interpretasi jalur aplikasi penerima. Panduan pemecahan masalah lubang SVG memisahkan kasus-kasus tersebut.
Periksa file yang disimpan untuk:
- siluet yang diinginkan dan celah kecil;
- ruang kosong nyata di luar tanda dan di dalam penghitungnya;
- bintik-bintik liar yang tidak boleh menjadi benda;
- ukuran dokumen yang sesuai dengan alur kerja tujuan;
- jalur daripada salinan PNG yang disematkan.
Jika hanya latar belakang yang terlihat salah, gunakan diagnosis latar belakang SVG transparan sebelum menghapus setiap objek berwarna putih. Jika fitur kecil benar-benar tidak ada pada sumbernya, gunakan dokumen asli yang lebih besar atau gambar ulang detail tersebut. panduan kualitas sumber menjelaskan batasan tersebut.
Kapan alur kerja monokrom ini cocok
Potrace cocok dengan tanda yang dapat diekspresikan sebagai siluet penuh dan bukaan yang disengaja. Pertahankan raster ketika bayangan lembut atau opacity parsial adalah bagian dari karya seni yang perlu Anda pertahankan. Untuk beberapa warna yang bermakna, gunakan alur kerja vektorisasi berkemampuan warna atau siapkan lintasan terpisah yang disengaja; perintah monokrom tunggal ini tidak membuat palet warna.
Anda juga dapat menggunakan editor vektor untuk menggambar ulang kontur kritis. Penelusuran otomatis memberikan bentuk kandidat, dan tujuan penggunaan Anda menentukan apakah akan menyimpan atau mengeditnya.
Pertanyaan Umum
Dapatkah Potrace membuka PNG secara langsung? Standar Potrace 1.16 menerima input PBM, PGM, PPM dan BMP. Dekode PNG dengan alat gambar lain terlebih dahulu, jadikan perlakuan transparansinya eksplisit, dan simpan bitmap yang didukung sebelum ditelusuri.
Apakah Potrace menjaga transparansi PNG? Alur kerja monokrom menciptakan geometri terisi dan area kosong. Itu tidak mempertahankan nilai alpha berkelanjutan PNG. Gabungkan piksel transparan ke matte yang disengaja sebelum melakukan ambang batas, lalu verifikasi wilayah kosong SVG melalui latar belakang yang kontras.
Apakah alphamax merupakan setelan alfa PNG? Tidak. Alphamax Potrace mengontrol perlakuan sudut pada kurva yang dilacak. Ini tidak menentukan bagaimana saluran opacity PNG digabungkan sebelum ditelusuri.
Mengapa lubangnya hilang? Periksa apakah bukaan masih terlihat pada bitmap yang telah disiapkan dan ambang batas yang dipilih. Jika ambang batas memenuhinya, ubah persiapan atau batas dan telusuri kembali. Jika SVG berisi pembukaan tetapi hanya aplikasi penerima yang mengisinya, periksa jalur gabungan dan penanganan aturan pengisian di sana.
Sumber
- Potrace — Manual — Format masukan yang didukung, ambang batas monokrom, keluaran SVG, dan opsi perintah bernama.
- Pillow — Modul gambar — Pengomposisian gambar RGBA dan urutan yang digunakan dalam cuplikan persiapan.
- W3C — Spesifikasi PNG — Sampel warna dan representasi alfa dalam gambar PNG.
- W3C — Jalur SVG — Jalur gabungan dan kontur bagian dalam yang dapat menggambarkan bukaan.
Mulai gratis dengan gambar Anda sendiri di PerfectVector, lalu periksa siluet dan bukaan bagian dalamnya dengan sumbernya sebelum memilih langkah pengeditan berikutnya.
Lebih banyak dari blog
Tracing Gambar SVGcode: Periksa Bentuk Hasil Ekspor
Lacak gambar berwarna datar di SVGcode, salin SVG sebenarnya, dan periksa paletnya, bukaan bagian dalam, latar belakang, dan kanvasnya sebelum menggunakan file tersebut dalam desain Anda.
ImageMagick PNG ke SVG: Periksa Delegate Tracing
Cari tahu apakah perintah ImageMagick PNG-ke-SVG Anda membuat jalur, delegasi penelusuran mana yang digunakannya, dan mengapa gambar berwarna bisa menjadi jejak SVG monokrom.


