วิธีการแปลงภาพ PNG เป็น SVG?
วิธีการแปลงภาพ PNG เป็น SVG?
คำตอบ:
มีเว็บไซต์ที่คุณสามารถอัพโหลดภาพและดูผลลัพธ์
แต่ถ้าคุณต้องการดาวน์โหลด svg-image ของคุณคุณต้องลงทะเบียน (ถ้าคุณลงทะเบียนคุณจะได้รับ 2 ภาพฟรี)
potrace
ไม่ไม่สนับสนุน PNGเป็นแฟ้มใส่ แต่PNM
ดังนั้นก่อนconvert
จาก PNG ถึง PNM:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
potrace -s
=> ไฟล์ที่ส่งออกคือS VGpotrace -o file.svg
=> เขียนผลลัพธ์ไปที่ file.svg
convert 2017.png 2017.pnm
ไฟล์ชั่วคราว = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
ykarikosเสนอสคริปต์png2svg.shที่ฉันได้ปรับปรุง:
#!/bin/bash
File_png="${1?:Usage: $0 file.png}"
if [[ ! -s "$File_png" ]]; then
echo >&2 "The first argument ($File_png)"
echo >&2 "must be a file having a size greater than zero"
( set -x ; ls -s "$File_png" )
exit 1
fi
File="${File_png%.*}"
convert "$File_png" "$File.pnm" # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg" # PNM to SVG
rm "$File.pnm" # Remove PNM
หากคุณต้องการแปลงไฟล์จำนวนมากคุณยังสามารถใช้คำสั่งหนึ่งบรรทัดต่อไปนี้:
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )
ดูการเปรียบเทียบแรสเตอร์กับเวกเตอร์ตัวแปลงที่ดีใน Wikipedia
potrace
ไอคอนสีดำและสีขาวเสมอ ขอบคุณสำหรับความคิดเห็นของคุณ แต่ขอโทษที่ไม่รู้ว่าจะเก็บสีอย่างไร ... โฮ! ฉันมีความคิด: หากภาพต้นฉบับของคุณมีสีไม่กี่สี (สมมติว่ามีสามสีที่ไม่ซ้ำกัน) คุณอาจสร้างภาพเริ่มต้นสามภาพ (หนึ่งภาพสำหรับแต่ละสี) จากนั้นแปลงเป็น SVG และสุดท้ายรวมเนื้อหา SVG สามรายการไว้ในไฟล์เดียว (SVG เป็นแบบ XML) หวังว่านี่จะช่วยได้ ... ไชโย ;-)
convert
และpotrace
มีอยู่ในหลายแพลตฟอร์ม ฉันกำลังใช้คอมพิวเตอร์ที่ใช้ Linux ฉันเพิ่งใช้คำสั่งเหล่านี้เมื่อวานนี้เพื่อผลิต SVG จากกระดาษสแกน คุณสามารถดูผลลัพธ์ได้: cpp-frug.github.io/images/Cpp-President-2017.svgโปรดอธิบายเพิ่มเติมเกี่ยวกับเป้าหมายของคุณ คุณต้องการ / สงสัยอะไร ความต้องการ / ความปรารถนาของคุณคืออะไร? Cheers ;-)
png เป็นรูปแบบบิตแมปภาพและ SVG เป็นการออกแบบกราฟิกแบบเวกเตอร์ที่รองรับบิตแมปดังนั้นจึงไม่ใช่ราวกับว่ามันจะแปลงภาพเป็นเวกเตอร์เพียงแค่ภาพที่ฝังในรูปแบบเวกเตอร์ คุณสามารถทำได้โดยใช้http://www.inkscape.org/ซึ่งฟรี มันจะฝัง แต่ก็มี Live Trace เช่นเอ็นจิ้นซึ่งจะพยายามแปลงเป็นเส้นทางหากคุณต้องการ (ใช้ potrace) ดูการติดตามสดใน adobe illustrator (commericial) เป็นตัวอย่าง:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
ง่าย
ดังที่คุณเห็นหากคุณต้องการทำสิ่งอื่น ๆ อีกมากมายที่ฉลาด. svg คุณสามารถทำได้โดยใช้ Inkscape ด้วย
การสังเกตที่ไม่ใช่ด้านเทคนิค: โดยส่วนตัวแล้วฉันชอบวิธีนี้มากกว่าการให้บริการเว็บไซต์ "ฟรี" เพราะนอกจากจะต้องลงทะเบียนบ่อยครั้งโดยการอัพโหลดภาพในแง่ที่เป็นประโยชน์ทั้งหมดหนึ่งคือการให้ภาพแก่เจ้าของเว็บไซต์
ด้วย adobe illustrator:
เปิด Adobe Illustrator คลิก "ไฟล์" และเลือก "เปิด" เพื่อโหลดไฟล์. PNG ลงในโปรแกรมแก้ไขภาพตามต้องการก่อนบันทึกเป็นไฟล์. SVG คลิก "ไฟล์" และเลือก "บันทึกเป็น" สร้างชื่อไฟล์ใหม่หรือใช้ชื่อที่มีอยู่ ตรวจสอบว่าประเภทไฟล์ที่เลือกคือ SVG เลือกไดเรกทอรีและคลิก "บันทึก" เพื่อบันทึกไฟล์
หรือ
แปลงออนไลน์ http://image.online-convert.com/convert-to-svg
ฉันชอบ AI เพราะคุณสามารถทำการเปลี่ยนแปลงใด ๆ ที่จำเป็น
โชคดี
เพื่อความประหลาดใจของฉันpotraceมันเปิดออกสามารถประมวลผลขาวดำเท่านั้น อาจเป็นเรื่องที่ดีสำหรับคุณที่ใช้เคส แต่บางคนอาจคิดว่าการติดตามสีขาดหายไปนั้นเป็นปัญหา
ส่วนตัวแล้วฉันได้ผลลัพธ์ที่น่าพอใจด้วย Vector Magic
ยังไม่สมบูรณ์แบบ
หมายเหตุสำหรับผู้ที่ใช้potraceและimagemagickการแปลงภาพPNGด้วยความโปร่งใสเป็นPPMนั้นดูเหมือนจะทำงานได้ไม่ดีนัก นี่คือตัวอย่างที่ใช้-flatten
แฟล็กconvert
เพื่อจัดการสิ่งนี้:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
อีกปรากฏการณ์ที่น่าสนใจคือคุณสามารถใช้PPM (256 * 3 สีเช่น. RGB), PGM (256 สีเช่น. สีเทา) หรือPBM (2 สีเช่นสีขาวหรือสีดำเท่านั้น) เป็นรูปแบบอินพุต จากการสังเกตที่ จำกัด ของฉันมันจะปรากฏว่าในภาพที่มี anti-aliased, PPMและPGM (ซึ่งผลิตSVG ที่เหมือนกันเท่าที่ฉันเห็น) หดพื้นที่สีและPBMขยายพื้นที่สี (แม้ว่าจะมีเพียงเล็กน้อย) สันนิษฐานว่าเป็นความแตกต่างระหว่างการpixel > (256 / 2)
ทดสอบและการpixel > 0
ทดสอบ คุณสามารถสลับระหว่างสามไฟล์ด้วยการเปลี่ยนนามสกุลไฟล์เช่น ใช้PBMต่อไปนี้:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
คุณสามารถลอง http://image.online-convert.com/convert-to-svg
ฉันมักจะใช้มันเพื่อความต้องการของฉัน
ฉันเพิ่งพบคำถามและคำตอบนี้เมื่อฉันพยายามทำสิ่งเดียวกัน! ฉันไม่ต้องการใช้เครื่องมืออื่นที่กล่าวถึง (ไม่ต้องการให้อีเมลของฉันออกไปและไม่ต้องการจ่าย) ฉันพบว่า Inkscape (v0.91) สามารถทำได้ดีมาก บทช่วยสอนนี้ได้อย่างรวดเร็วและง่ายต่อการเข้าใจ
มันง่ายเหมือนการเลือกบิตแมปของคุณใน Inkskape และShift + Alt + B
ขึ้นอยู่กับ สาเหตุคุณต้องการแปลงจาก. png เป็น. svg คุณอาจไม่ต้องเจอปัญหา การแปลงจาก. png (แรสเตอร์) เป็น. svg (เวกเตอร์) อาจเป็นเรื่องเจ็บปวดหากคุณไม่คุ้นเคยกับเครื่องมือที่มีอยู่หรือหากคุณไม่ใช่นักออกแบบกราฟิกโดยการแลกเปลี่ยน
หากมีคนส่งไฟล์ความละเอียดสูงขนาดใหญ่ (เช่น 1024x1024) ถึงคุณคุณสามารถปรับขนาดไฟล์ให้เล็กลงตามขนาดที่คุณต้องการใน GIMP บ่อยครั้งที่คุณจะมีปัญหาในการปรับขนาดภาพถ้าความละเอียด (จำนวนพิกเซลต่อนิ้ว) ต่ำเกินไป หากต้องการแก้ไขสิ่งนี้ใน GIMP คุณสามารถ:
File -> Open
: ไฟล์. png ของคุณImage -> Image Properties
: ตรวจสอบความละเอียดและพื้นที่สี คุณต้องการความละเอียดประมาณ 300 ppi ในกรณีส่วนใหญ่คุณต้องการให้พื้นที่สีเป็น RGBImage -> Mode
: ตั้งค่าเป็น RGBImage -> Scale Image
: เว้นขนาดไว้คนเดียวตั้งค่าและความละเอียด Y เป็น 300 หรือมากกว่า Hit ScaleImage -> Scale Image
: ความละเอียดควรเป็น 300 และคุณสามารถปรับขนาดภาพให้เล็กลงได้ตามที่คุณต้องการไม่ใช่เรื่องง่ายเหมือนกับการปรับขนาดไฟล์. svg แต่แน่นอนว่าง่ายกว่าและเร็วกว่าการแปลง. png เป็น. svg หากคุณมีภาพขนาดใหญ่และความละเอียดสูงอยู่แล้ว
ฉันสมมติว่าคุณต้องการเขียนซอฟต์แวร์เพื่อทำสิ่งนี้ หากต้องการทำอย่างไร้เดียงสาคุณเพียงแค่หาเส้นและตั้งเวกเตอร์ ในการทำอย่างชาญฉลาดคุณพยายามปรับรูปร่างให้พอดีกับรูปวาด (การปรับแบบจำลอง) นอกจากนี้คุณควรพยายามตรวจสอบภูมิภาคบิตแมป (ภูมิภาคที่คุณไม่สามารถจำลองผ่านความอับอายหรือการใช้พื้นผิวฉันไม่แนะนำให้ไปเส้นทางนี้เนื่องจากจะใช้เวลาค่อนข้างนานและต้องใช้ความรู้ด้านกราฟิกและคอมพิวเตอร์เล็กน้อย อย่างไรก็ตามเอาต์พุตจะมากและปรับขนาดได้ดีกว่าเอาต์พุตดั้งเดิมของคุณ
http://online-converting.com/image/convert-to-svg/ทำงานได้ดีสำหรับการแปลงเป็น svg
potrace
ในบรรทัดคำสั่ง - ทำให้ผมสงสัยว่าการใช้เว็บไซต์ภายใน ...
เครื่องมือนี้ใช้งานได้ดีในตอนนี้
หากคุณใช้ระบบ Linux บางระบบ imagemagick นั้นสมบูรณ์แบบ กล่าวคือ
convert somefile.png somefile.svg
ใช้งานได้กับหลายรูปแบบ
สำหรับสื่ออื่น ๆ เช่นวิดีโอและการใช้เสียง (ffmpeg) ฉันรู้ว่าคุณระบุ png กับ svg อย่างชัดเจน มันยังเกี่ยวข้องกับสื่อ
ffmpeg -i somefile.mp3 somefile.ogg
เพียงแค่เคล็ดลับหากคุณต้องการผ่านไฟล์จำนวนมาก วนรอบโดยใช้เทคนิคเชลล์พื้นฐาน ..
for f in *.jpg; do convert $f ${f%jpg}png; done
ซึ่งจะลบ jpg และเพิ่ม png ซึ่งจะบอกให้คุณแปลงสิ่งที่คุณต้องการ