ฉันจะแปลง PNG เป็น SVG โดยใช้ซอฟต์แวร์ได้อย่างไร


29

ฉันต้องการที่จะสามารถปลูกโครงสร้างทางเคมีของ SVGได้อย่างสมบูรณ์ (ดูคำถามนี้ ) ที่สร้างขึ้นโดยใช้MarvinSketchและฉันคิดว่าฉันอาจคิดถึงวิธีแก้ปัญหา ผมใช้ MarvinSketch สร้างไฟล์ PNG ขนาดใหญ่แล้วตัดที่ใช้GIMPและจากนั้นแปลงPNG ถึง SVG ดังนั้นฉันต้องการทราบว่าถ้าใครรู้จักซอฟต์แวร์ฟรีที่ฉันสามารถติดตั้งได้ (ฉันไม่ชอบการใช้ตัวแปลงออนไลน์เพราะฉันสงสัยมัลแวร์อยู่เสมอ) บน Ubuntu สำหรับ PNG-> การแปลง SVG คุณภาพสูง


1
ตกลงรหัสสำหรับลักษณะนั้นจะเป็นอย่างไร ฉันพยายามย้อนกลับโค้ดตามที่คุณพูดจากความรู้ของฉัน (ฉันเป็นโค้ด noob) นี่คือรหัสที่ฉันใช้`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017

1
หลังจากทำcd ~/Documents/Chem Structures/สิ่งที่เป็นไดเรกทอรีซึ่งเป็นไฟล์
BH2017

1
sudo apt-get imagemagick ติดตั้งแล้วบันทึกสคริปต์นี้ #! / bin / bash ขณะที่ [$ # -gt 0]; ทำรูปภาพ = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / แปลง "$ รูปภาพ" png: "$ png_file" ทำการเปลี่ยนแปลงใน ~ / .local / share / nautilus / สคริปต์และอย่าลืมให้มันปฏิบัติการจากนั้นเพียงคลิกขวาจากนั้นก็ทำลายสิ่งที่เคย คุณบันทึกสคริปต์นี้ภายใต้
zeitue

1
ตกลงที่ฉันบอกว่าฉันเป็น noob ดังนั้นคุณจะต้องอธิบายว่าดีกว่าที่ฉันเข้าใจคือsudo apt-get install imagemagick
BH2017

2
อย่างไรก็ตามคุณควรทราบว่ามีความแตกต่างพื้นฐานระหว่างกราฟิกแบบเวกเตอร์เช่น SVG และกราฟิกพิกเซลเช่น PNG เมื่อคุณคลายข้อมูลเวคเตอร์จะไม่มีวิธี (กู้คืน) ฟรี ดังนั้นแม้ว่าคุณจะ "แปลง" จาก PNG เป็น SVG คุณก็ไม่ได้ทำอะไรเลยนอกจากการฝังกราฟิกพิกเซล (เข้ารหัส 64 เบส) ภายในไฟล์กราฟิกเวกเตอร์ SVG convertคำสั่งจะเลวร้ายยิ่ง: มันวางวงกลมสำหรับพิกเซลกราฟิกพิกเซลทุกสิ่งที่นำไปสู่การขนาดของแฟ้มที่มีขนาดใหญ่มาก ฉันจึงพยายามตัดไฟล์ SVG โดยตรง
Soulsource

คำตอบ:


24

ดังนั้นคุณกำลังมองหาrasterเพื่อเวกเตอร์กราฟิกแปลง / ตามรอย potraceและautotraceทั้งคู่อยู่ในที่เก็บ Ubuntu ตัวฉันเองฉันพยายามpotraceมาก่อนซึ่งให้ผลลัพธ์ที่ดีพร้อมตัวเลือกเริ่มต้น ในฐานะที่ผมจำได้ว่าเครื่องมือทั้งไม่สนับสนุนรูปแบบการบีบอัดเป็น input เพียงภาพบิตแมป

ดูตัวอย่าง Potrace

Potrace : ยูทิลิตี้เพื่อแปลงบิตแมปเป็นกราฟิกแบบเวกเตอร์

potrace เป็นเครื่องมือสำหรับการติดตามบิตแมปซึ่งหมายถึงการแปลงบิตแมปเป็นภาพที่ราบรื่นและปรับขนาดได้ อินพุตเป็นบิตแมป (รูปแบบ PBM, PGM, PPM หรือ BMP) และเอาต์พุตเริ่มต้นคือไฟล์ PostScript ที่ถูกห่อหุ้ม (EPS) การใช้งานทั่วไปคือการสร้างไฟล์ EPS จากข้อมูลที่สแกนเช่นโลโก้ บริษัท หรือมหาวิทยาลัยบันทึกที่เขียนด้วยลายมือ ฯลฯ ภาพที่ได้นั้นไม่ได้ "jaggy" เหมือนบิตแมป แต่เรียบเนียน จากนั้นสามารถแสดงผลที่ความละเอียดใด ๆ

คำสั่ง:

potrace -s inputfile

AutoTrace : bitmap เป็น vector graphics converter

AutoTrace เป็นโปรแกรมสำหรับแปลงบิตแมปเป็นกราฟิกแบบเวกเตอร์ เป้าหมายของโครงการ AutoTrace คือการพัฒนาแอปพลิเคชันที่ใช้งานได้ฟรีคล้ายกับ CorelTrace หรือ Adobe Streamline ในบางแง่มุมมันดีกว่าอยู่แล้ว เดิมทีสร้างเป็นปลั๊กอินสำหรับ GIMP AutoTrace เป็นโปรแกรมแบบสแตนด์อโลน

คำสั่ง:

autotrace -output-format svg inputfile

อ้างอิง:

  • man potrace
  • man autotrace

ปรับปรุง


1
ฉันวิ่งautotrace -vector svg inputfile(หลังจากเปลี่ยน inputfile เป็น fenfluramine.png) และมันไม่ทำงานฉันก็เปลี่ยนรูปแบบเอาต์พุตเป็น svg ด้วยเช่นกัน ฉันติดตั้งแล้ว
BH2017

1
ฉันวิ่งpotrace -s inputfile(ด้วย inputfile ที่เป็น fenfluramine.png อีกครั้ง) และมันทำให้ฉันมีข้อผิดพลาด: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 คุณควรสร้างภาพ PNM หรือ BMP แทน PNG เครื่องมือทั้งสองไม่สนับสนุนรูปแบบที่บีบอัดเช่นอินพุต (PNG, JPEG ... ), เฉพาะรูปภาพบิตแมป (PNM, BMP, ... ) หากคุณไม่สามารถส่งออก PNG อื่น ๆ ได้ให้ลองแปลงเป็นลำดับที่ 1 เป็น BMP
user.dz

1
ถ้าอย่างนั้นคุณก็ไม่ได้ตอบคำถามของฉัน MarvinSketch สามารถส่งออกไปยัง BMP ได้ แต่พื้นหลังของมันไม่โปร่งใสซึ่งเป็นสาเหตุที่ฉันแนะนำรูปแบบ PNG ตั้งแต่แรก มันทำ PNM ไม่ได้
BH2017

2
อ่ามันใช้ได้ผล ขอบคุณ ฉันคิดว่า BMP ไม่โปร่งใสผลลัพธ์จะไม่เหมือนกัน
BH2017

19

Inkscape มีเครื่องมือติดตามอัตโนมัติที่ยอดเยี่ยม

  1. ติดตั้ง Inkscape โดยใช้ sudo apt-get install inkscape
  2. นำเข้าภาพของคุณ
  3. เลือกภาพของคุณ
  4. จากแถบเมนูให้เลือก Path -> Trace Bitmap Item
  5. ปรับพารามิเตอร์การติดตามตามต้องการ

ตรวจสอบบทช่วยสอนการติดตามเพื่อดูข้อมูลเพิ่มเติม

เมื่อคุณพอใจกับตัวเลือกการติดตาม คุณสามารถอัตโนมัติโดยใช้CLI ของ Inkscape


5
+1 ขอบคุณ ดีใจที่ได้ยินว่า Inkscape ได้รวมpotraceฟังก์ชั่นการใช้งานใน GUI ตามที่ระบุไว้ในข้อมูลอ้างอิงที่คุณพูดถึง
user.dz

5
นี่เป็นคำตอบที่ถูกต้องเนื่องจาก potrace ไม่รองรับการนำเข้า. png และเป็นเรื่องง่ายที่จะพบปัญหากับความโปร่งใสและการแปลง
brianlmerritt

1
นอกจากนี้ Gimp ยังสามารถติดตามภาพสีสิ่งที่ potrace ดูเหมือนจะพลาด
รอยยิ้ม

8

ใช้convertคำสั่งในเทอร์มินัล:

ตัวอย่างเช่น : convert EXAMPLE.png EXAMPLE.svg

นี่คือข้อมูลบางส่วนจาก manpage:

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


3
สิ่งนี้จะฝังรูปภาพแรสเตอร์ใน SVG แทนที่จะแปลงเป็นภาพเวกเตอร์
bk138

1
ขอบคุณมาก ... นี่เป็นเพียงสิ่งที่ฉันกำลังมองหา ...
Dan Ortega

2

ฉันเพิ่งใช้ gimp ทันทีด้วยผลลัพธ์ที่น่าอัศจรรย์ ครั้งแรกที่ฉันใช้ potrace แต่สิ่งที่ฉันได้รับคือภาพทั้งหมดในสีดำที่มีการบิดเบือนมาก บางทีฉันอาจไม่ได้ใช้อย่างถูกต้อง แต่เมื่อฉันลองใช้ gimp แค่ส่งออกเป็น "eps" (file_name.eps) ก็เสร็จสิ้นแล้ว สิ่งที่ฉันต้องทำก็คือตรวจสอบว่าตั้งความละเอียดด้วยค่า 300 นั่นแหล่ะ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.