Bagaimana cara mengubah PNG ke SVG, menggunakan perangkat lunak?

29

Saya ingin dapat memotong struktur kimia SVG , sepenuhnya (lihat pertanyaan ini ), yang dibuat menggunakan MarvinSketch dan saya pikir saya mungkin telah memikirkan solusi; Saya menggunakan MarvinSketch untuk membuat file PNG besar, lalu memotong yang menggunakan GIMP , dan kemudian mengkonversi PNG ke SVG . Oleh karena itu saya ingin tahu apakah ada yang tahu perangkat lunak gratis yang dapat saya instal (saya tidak suka menggunakan konverter online karena saya selalu curiga terhadap malware) di Ubuntu untuk konversi PNG-> SVG yang berkualitas tinggi.

BH2017
sumber
1
OK akan seperti apa kode untuk itu? Saya mencoba membalikkan kode seperti yang Anda katakan, dari pengetahuan saya (saya kode noob). Ini adalah kode yang saya gunakan`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017
1
Setelah melakukan cd ~/Documents/Chem Structures/yang merupakan direktori di mana file-file tersebut.
BH2017
1
sudo apt-get install imagemagick lalu simpan skrip ini #! / bin / bash sambil [$ # -gt 0]; lakukan picture = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convert "$ picture" png: "$ png_file" shift dilakukan di ~ / .local / share / nautilus / skrip dan ingat untuk membuatnya dapat dieksekusi kemudian klik kanan lalu skrip lalu apa yang pernah Anda menyimpan skrip ini di bawah
zeitue
1
OK, seperti yang saya katakan saya seorang noob sehingga Anda harus menjelaskan bahwa lebih baik seperti yang saya mengerti adalahsudo apt-get install imagemagick
BH2017
2
Namun Anda harus menyadari bahwa ada perbedaan mendasar antara grafik vektor seperti SVG dan grafis piksel seperti PNG. Setelah Anda kehilangan informasi vektor, tidak ada cara (bebas kerugian) untuk mengembalikannya. Jadi, bahkan jika Anda "mengkonversi" dari PNG ke SVG, pada dasarnya Anda tidak melakukan hal lain seperti menanamkan grafik piksel (base64 disandikan) dalam file grafik vektor SVG. The convertperintah bahkan lebih buruk: Ini menempatkan lingkaran untuk setiap pixel grafis pixel, apa yang mengarah ke ukuran file yang sangat besar. Karena itu saya akan mencoba untuk langsung memotong file SVG.
soulsource

Jawaban:

24

Jadi Anda mencari pengonversi / pelacak grafis raster ke vektor . & Keduanya ada di repositori Ubuntu. Saya sendiri pernah mencobanya sebelumnya yang memberikan hasil bagus dengan opsi default. Seingat saya, kedua alat tidak mendukung format terkompresi sebagai input, hanya gambar bitmap .potraceautotracepotrace

Lihat contoh Potrace

Potrace : utilitas untuk mengubah bitmap menjadi grafik vektor

potrace adalah utilitas untuk melacak bitmap, yang berarti, mengubah bitmap menjadi gambar yang halus dan dapat diskalakan. Inputnya adalah bitmap (format PBM, PGM, PPM, atau BMP), dan output defaultnya adalah file PostScript yang dienkapsulasi (EPS). Penggunaan khas adalah untuk membuat file EPS dari data yang dipindai, seperti logo perusahaan atau universitas, catatan tulisan tangan, dll. Gambar yang dihasilkan bukan "jaggy" seperti bitmap, tetapi halus. Itu kemudian dapat diberikan pada resolusi apa pun.

Perintah:

potrace -s inputfile

AutoTrace : konverter bitmap ke vektor

AutoTrace adalah program untuk mengubah bitmap ke grafik vektor. Tujuan dari proyek AutoTrace adalah pengembangan aplikasi yang tersedia secara bebas mirip dengan CorelTrace atau Adobe Streamline. Dalam beberapa aspek sudah lebih baik. Awalnya dibuat sebagai plugin untuk GIMP, AutoTrace sekarang merupakan program mandiri.

Perintah:

autotrace -output-format svg inputfile

Referensi:

  • man potrace
  • man autotrace

Memperbarui

user.dz
sumber
1
Saya berlari autotrace -vector svg inputfile(setelah mengubah inputfile ke fenfluramine.png) dan itu tidak berhasil, saya juga mengubah format output ke svg tidak bekerja. Saya telah menginstalnya.
BH2017
1
Saya berlari potrace -s inputfile(dengan inputfile menjadi fenfluramine.png lagi) dan itu memberi saya kesalahan ini:potrace: /home/fusion809/Documents/Chem Structures/Fenfluramine.png: file format not recognized Possible input file formats are: pnm (pbm, pgm, ppm), bmp.
BH2017
1
@BrentonHorne, Anda harus membuat gambar PNM atau BMP alih-alih PNG. kedua alat tidak mendukung format terkompresi sebagai input (PNG, JPEG ...), hanya gambar Bitmap (PNM, BMP, ...). Jika Anda tidak dapat mengekspor yang lain dari PNG maka cobalah mengonversikannya menjadi 1 ke BMP.
user.dz
1
Kalau begitu Anda tidak menjawab pertanyaan saya. MarvinSketch dapat mengekspor ke BMP tetapi latar belakangnya tidak transparan yang mengapa saya menyarankan format PNG di tempat pertama. Itu tidak bisa melakukan PNM.
BH2017
2
Aha, itu berhasil. Terima kasih. Saya pikir karena BMP tidak transparan hasilnya tidak akan terlalu.
BH2017
19

Inkscape memiliki alat pelacak otomatis yang luar biasa.

  1. Instal Inkscape menggunakan sudo apt-get install inkscape
  2. Impor gambar Anda
  3. Pilih gambar Anda
  4. Dari bilah menu, pilih Path -> Trace Bitmap Item
  5. Sesuaikan parameter penelusuran sesuai kebutuhan

Lihat tutorial penelusuran mereka untuk informasi lebih lanjut.

Setelah Anda merasa nyaman dengan opsi penelusuran. Anda dapat mengotomatiskannya dengan menggunakan CLI dari Inkscape .

Hussein El Motayam
sumber
5
+1, Terima kasih. Senang mendengar bahwa Inkscape memiliki potracefungsi terintegrasi dalam GUI sebagaimana dinyatakan dalam referensi yang Anda sebutkan.
user.dz
5
Ini adalah jawaban yang benar karena potrace tidak mendukung impor .png, dan mudah untuk mendapatkan kesulitan dengan transparansi dll dengan konversi.
brianlmerritt
1
Juga Gimp dapat melacak gambar berwarna, apa yang tampaknya terlewatkan oleh potrace.
Seringai
8

Gunakan convertperintah di terminal:

Sebagai contoh : convert EXAMPLE.png EXAMPLE.svg

Berikut ini beberapa info dari manual:

convert(1) - Linux man page

Name

convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.

Synopsis

convert [input-options] input-file [output-options] output-file

CPH
sumber
3
Ini menanamkan gambar raster di SVG alih-alih mengkonversi ke gambar vektor.
bk138
1
Terima kasih banyak ... ini hanya apa yang saya cari ...
Dan Ortega
2

Saya baru saja menggunakan gimp sekarang dengan hasil yang luar biasa. Saya pertama kali menggunakan potrace tetapi yang saya dapatkan hanyalah gambar serba hitam dengan banyak distorsi. Mungkin saya tidak menggunakannya dengan benar tetapi ketika saya mencoba dengan gimp hanya mengekspor sebagai "eps" (file_name.eps), semuanya selesai. Yang harus saya lakukan adalah memeriksanya mengatur resolusi dengan nilai 300. Itu saja.

Ivan Cervantes
sumber