एसवीजी को पीडीएफ और / या कुछ सामान्य रूप से उपयोग किए जाने वाले बिटमैप प्रारूप में बदलने के लिए मुफ्त लिनक्स कमांड लाइन टूल?


17

क्या एसवीजी को पीडीएफ और / या कुछ सामान्य रूप से उपयोग किए जाने वाले बिटमैप प्रारूप (उदाहरण के लिए पीएनजी) में परिवर्तित करने के लिए एक मुफ्त लिनक्स कमांड लाइन टूल है?

linux  svg 

2
mogrify -format pdf -- *.svg
यारोगिरग

जवाबों:


25

जब आप चाहते हैं (या कम से कम स्वीकार्य है) आउटपुट है, तो इमेजमैजिक बहुत अच्छा है, लेकिन अन्यथा यह एक बुरा विकल्प है, क्योंकि यह प्रभावी रूप से पीडीएफ में जो कुछ भी आप परिवर्तित करने की कोशिश कर रहे हैं का एक rasterized संस्करण में एम्बेड करता है। Svg / pdf का पूरा बिंदु यह है कि इसे वेक्टराइज़ किया जा सकता है, जिससे आकार छोटा होता है, जबकि किसी भी रिज़ॉल्यूशन पर यह चिकना रहता है।

इसलिए, मैं निश्चित रूप से Inkscape या CarioSVG का उपयोग करने की सलाह दूंगा । उत्तरार्द्ध में इस उद्देश्य ( और svg2pdf, ) के लिए कई कमांड लाइन उपयोगिताएं हैं । केवल अड़चन यह है कि यह मूल रूप से सिर्फ एक अजगर का अंडा है, इसलिए यदि आपके पास एक अजगर वातावरण स्थापित नहीं है और एक को स्थापित करने के लिए पर्याप्त नहीं है (या पर्याप्त देखभाल नहीं करते हैं), तो वह विकल्प नहीं है जाओ। मैंने खुद कोशिश की, लेकिन समस्याओं को स्थापित करने में समस्या थी (ऐसा नहीं है कि मैंने बहुत कोशिश की )।svg2pssvg2pnglibcairo

Inkscape कमाल है, लेकिन अगर आप एक त्वरित छोटी कमांड चाहते हैं तो cli थोड़ा क्लूनी है, जो आपके लिए सभी काम करने के लिए है। मैंने अपने लिए इन सभी की देखभाल के लिए कुछ स्क्रिप्ट्स को एक साथ रखा:

svg2pdf

#!/bin/bash

for i in $@; do
  inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done

svg2png

#!/bin/bash

for i in $@; do
  inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done

पहले एक को अंदर रखें ~/bin/svg2pdfऔर बाद में दोनों को ~/bin/svg2pngचलाने chmod +xके लिए उन पर अमल करें, और उछाल दें! आपके पास अक्सर इन वांछित कार्यों के लिए एक त्वरित और आसान शॉर्टकट है जो आपको सोचने या याद करने की आवश्यकता नहीं है कि इंकस्केप का सीएलआई कैसे काम करता है। (स्पष्ट रूप से आपको काम करने से पहले इन्क्सस्केप की आवश्यकता होगी)


मैं ImageMagick और दस pdfs और की पीढ़ी के साथ इंकस्केप साथ सिर्फ एक तेजी से प्रदर्शन परीक्षण किया ImageMagick है 5.77 गुना तेजी से। time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;असली 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;असली 0m0.381s

6
यह तेज़ हो सकता है, लेकिन आप ग्राफिक की वेक्टर प्रकृति को खो रहे हैं, इसलिए यह शायद 10 गुना बड़ा है (हालांकि मैं गलत होने पर आपको मुझे सही करना पसंद करूंगा)। इसका कारण अधिक समय लगता है क्योंकि यह वास्तविक वेक्टर जोड़तोड़ कर रहा है, जो कि रेखांकन (जो मूल रूप से प्रतिपादन के बराबर है) की तुलना में बहुत अधिक जटिल है।
metasoarous

7

नहीं है छवि Magick , और इंकस्केप भी कमांड लाइन उपकरण है।


3
convertदूर तक जीतता है। यह उन गूढ़ स्वरूपों से परिवर्तित करने में भी सक्षम है जिन्हें आप जानते भी नहीं थे, और उन पर अधिक प्रभाव लागू करते हैं, तब आपको कभी भी आवश्यकता होगी।
new123456

3
अपरिचित पाठकों के लिए स्पष्ट करने के लिए, convertImageMagick के लिए एक कमांड-लाइन टूल है।
एरिका

2
और एक और स्पष्टीकरण: यदि आप कन्वर्ट का उपयोग करते हैं, तो आप वेक्टर से रेखापुंज में बदल जाएंगे और छवि को स्केल करने की क्षमता खो देंगे। मेरी किताब में, यह जीता है कि inkscape है। यह सिर्फ इस बात पर निर्भर करता है कि आपको क्या चाहिए।
nsheff

6

इंकस्केप

पीडीएफ के लिए:

inkscape -A a.pdf a.svg

पीएनजी के लिए:

inkscape -e a.png a.svg

पर पाया man inkscapeऔर कमांड लाइन मोड में इंकस्केप का उपयोग कैसे करें


जोड़ने के लिए: -e पीएनजी के लिए है; PDF के लिए -A का उपयोग करें
nsheff

0

जैसा कि मुझे पता है, cmd के माध्यम से Inkscape को संचालित करने का एक तरीका है - मैंने पहले से ही अपने विशाल SVG संग्रह से बैच निर्यात PNG थंबनेल के लिए कुछ इसी तरह का उपयोग किया है। जैसा कि इंकस्केप भी काहिरा के माध्यम से पीडीएफ निर्यात का समर्थन करता है, पीडीएफ को भी निर्यात करना संभव होना चाहिए। मैं कुछ Inkscape फोरम पर पूछूंगा। :-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.