PerfectVector
लेखक: Irene Kim7 मिनट का पठन

Inkscape कमांड लाइन एक्सपोर्ट: पेज, चित्र या ऑब्जेक्ट

Inkscape कमांड लाइन PNG एक्सपोर्ट में पेज, चित्र या ऑब्जेक्ट की सीमा चुनें। वास्तविक आउटपुट की तुलना करें, दो आकार बनाएँ और मूल SVG प्रति सुरक्षित रखें।

इस पेज पर

Inkscape कमांड लाइन से PNG एक्सपोर्ट के लिए पहले क्षेत्र चुनें: --export-area-page पेज फ़्रेम रखता है, --export-area-drawing चित्र के चारों ओर फ़िट करता है और --export-id ऑब्जेक्ट की सीमा चुनता है। आउटपुट में केवल वही ऑब्जेक्ट चाहिए तो --export-id-only जोड़ें। Inkscape कमांड लाइन मार्गदर्शिका ऑब्जेक्ट तक क्रॉप करने और दूसरे ऑब्जेक्ट छिपाने का अंतर बताती है।

फिर आउटपुट चौड़ाई, पारदर्शिता और फ़ाइल नाम स्पष्ट सेट करें। इन चुनावों से फ़ाइलों का छोटा समूह जाँचना और दोहराना आसान होता है।

हमारे परीक्षण एक्सपोर्ट में क्या बदला

हमने 600 × 360 SVG बनाया, जिसमें दो नाम वाले ऑब्जेक्ट हैं: हरा बैज और उसके दाएँ किनारे पर चढ़ता मूँगा रंग का नमूना। पेज में पर्याप्त खाली जगह है। संयुक्त चित्र की सीमा 400 × 180 इकाइयाँ है; केवल बैज 180 × 180 है।

हमने आधिकारिक Inkscape 1.4.4 macOS arm64 ऐप के कमांड लाइन प्रोग्राम से स्रोत एक्सपोर्ट किया। नीचे के चारों एक्सपोर्ट 600 पिक्सेल चौड़ाई और पारदर्शी बैकग्राउंड माँगते हैं।

एक्सपोर्ट चुनावइस परीक्षण का आउटपुटदिखाई देने वाली सामग्री
पेज क्षेत्र600 × 360 PNGपेज की खाली जगह के साथ दोनों ऑब्जेक्ट।
चित्र क्षेत्र600 × 270 PNGअधिक कसकर क्रॉप दोनों ऑब्जेक्ट।
बैज ID600 × 600 PNGबैज और ऊपर चढ़े रंग नमूने का हिस्सा।
--export-id-only के साथ बैज ID600 × 600 PNGकेवल बैज।
एक्सपोर्ट क्षेत्र और ऑब्जेक्ट दृश्यता
वास्तविक Inkscape PNG एक्सपोर्ट में पेज की खाली जगह, चित्र की कसी सीमा, ऊपर चढ़े रंग नमूने सहित ऑब्जेक्ट क्रॉप और अलग किए बैज की तुलना
एक SVG से वास्तविक Inkscape 1.4.4 आउटपुट। पूर्वावलोकन हर पैनल में फ़िट किए हैं; पारदर्शी PNG के पीछे चौखाने हैं।

अलग किया ऑब्जेक्ट अपने PNG में अधिक बड़ा है, क्योंकि हमने उसकी छोटी सीमा पर भी 600 पिक्सेल चौड़ाई माँगी। एक्सपोर्ट क्षेत्र बदलने पर समान आउटपुट चौड़ाई का मतलब समान कलाकृति पैमाना नहीं होता।

ये उदाहरण सामान्य आकृतियों वाला एक पेज SVG इस्तेमाल करते हैं। इनमें कई पेजों का चयन, फ़िल्टर या लिंक की इमेज नहीं परखी गईं।

स्थिर ऑब्जेक्ट ID वाला स्रोत बनाएँ

इसे master.svg के रूप में सेव करें। समूह ID badge कमांड को उसका वृत्त और पाथ साथ एक्सपोर्ट करने देता है। दूसरा ऑब्जेक्ट swatch जानबूझकर बैज की सीमा पार करता है।

<svg xmlns="http://www.w3.org/2000/svg"
     width="600" height="360" viewBox="0 0 600 360">
  <g id="badge">
    <circle cx="150" cy="160" r="90" fill="#236f62"/>
    <path d="M150 89L190 160L150 231L110 160Z" fill="#cde0a4"/>
    <path d="M150 115L175 160L150 205L125 160Z" fill="#236f62"/>
  </g>
  <rect id="swatch" x="200" y="140" width="260" height="80"
        rx="12" fill="#d68462"/>
</svg>

मौजूदा डिज़ाइन के लिए एक्सपोर्ट स्क्रिप्ट बनाने से पहले SVG के ID देखें। संपादक में दिखता ऑब्जेक्ट नाम कमांड में इस्तेमाल XML id से अलग हो सकता है। हमारी SVG संपादन मार्गदर्शिका बैकअप रखते हुए मार्कअप जाँचना और बदलना बताती है।

पेज, चित्र और अलग बैज एक्सपोर्ट करें

नीचे की कमांड Bash या Zsh लिखावट इस्तेमाल करती हैं। उन्हें master.svg वाले फ़ोल्डर से चलाएँ। पहले शेल वेरिएबल अपने Inkscape प्रोग्राम की ओर रखें:

inkscape_bin=inkscape
mkdir -p exports

यह सेटिंग मानती है कि inkscape आपके PATH पर उपलब्ध है। सामान्य macOS ऐप इंस्टॉल में मान /Applications/Inkscape.app/Contents/MacOS/inkscape भी हो सकता है। जगह के पाथ में स्पेस हों तो मान देते समय पाथ को उद्धरण चिह्न में रखें।

पूरे पेज के लिए:

"$inkscape_bin" --batch-process master.svg \
  --export-type=png --export-area-page \
  --export-width=600 --export-background-opacity=0 \
  --export-filename=exports/page.png

चित्र के चारों ओर क्रॉप के लिए:

"$inkscape_bin" --batch-process master.svg \
  --export-type=png --export-area-drawing \
  --export-width=600 --export-background-opacity=0 \
  --export-filename=exports/drawing.png

केवल बैज के लिए:

"$inkscape_bin" --batch-process master.svg \
  --export-type=png --export-id=badge --export-id-only \
  --export-width=600 --export-background-opacity=0 \
  --export-filename=exports/badge.png

चित्र में ऊपर चढ़ने वाली नियंत्रित तुलना दोहराने के लिए अंतिम कमांड से --export-id-only हटाएँ और आउटपुट नाम बदलें। फिर मूँगा रंग का नमूना बैज के क्रॉप में दिखता है। केवल ID से क्रॉप चुनने पर कलाकृति अपने-आप अलग नहीं होती।

Inkscape मैनुअल इन फ़्लैग को बताता है। --export-width बिटमैप चौड़ाई पिक्सेल में तय करता है और DPI सेटिंग को पीछे कर देता है। एक्सपोर्ट का अनुपात संबंधित ऊँचाई तय करता है। हम हर कमांड में एक क्षेत्र चुनाव और स्पष्ट .png आउटपुट पाथ इस्तेमाल करते हैं।

परीक्षित कमांड में हमने --batch-process रखा। इस macOS परीक्षण में उसके बिना एक्सपोर्ट ने PNG लिखा, लेकिन प्रक्रिया चलती रही; ऊपर की कमांड सामान्य रूप से पूरी हुईं। यह फ़्लैग कई आकार माँगने वाले शेल लूप से अलग है।

मूल प्रति बदले बिना दो आकार बनाएँ

पेज फ़्रेम वाले दो PNG के लिए वही क्षेत्र सेटिंग दोहराएँ और केवल चौड़ाई तथा आउटपुट नाम बदलें:

for export_width in 240 480; do
  "$inkscape_bin" --batch-process master.svg \
    --export-type=png --export-area-page \
    --export-background-opacity=0 \
    --export-width="$export_width" \
    --export-filename="exports/page-${export_width}.png" || exit 1
done

हमारे परीक्षण में 240 × 144 और 480 × 288 PNG बने। दोनों में समान पेज फ़्रेम और पारदर्शी बैकग्राउंड था। एक्सपोर्ट से पहले और बाद master.svg का SHA-256 हैश मेल खाता था, इसलिए इस परीक्षण में स्रोत बाइट नहीं बदले।

बड़े काम में बढ़ाते समय आउटपुट नाम में स्रोत, क्षेत्र और आकार पहचानने योग्य रखें। कमांड स्रोत फ़ाइलों के पास स्क्रिप्ट में रखें, ताकि चुनाव बाद में दोहरा सकें। कलाकृति का बड़ा फ़ोल्डर चलाने से पहले शुरुआती आउटपुट जाँचें।

देने से पहले फ़ाइलें जाँचें

आयाम और दिखाई देने वाली सामग्री दोनों देखें। सफल कमांड भी गलत क्रॉप, अवांछित ऊपर चढ़ा हिस्सा या इच्छित से अधिक खाली जगह एक्सपोर्ट कर सकती है।

  • बड़े खाली किनारे: पेज और चित्र एक्सपोर्ट की तुलना करें। गंतव्य के अपेक्षित फ़्रेम को चुनें।
  • ID क्रॉप में दूसरा ऑब्जेक्ट दिखता है: देखें कि --export-id-only चाहिए या नहीं।
  • व्यूअर में पारदर्शिता सफ़ेद दिखती है: PNG को विपरीत रंग वाले बैकग्राउंड पर खोलें। स्रोत का सफ़ेद बैकग्राउंड ऑब्जेक्ट कलाकृति है और एक्सपोर्ट बैकग्राउंड पारदर्शी होने पर भी दिखता है।
  • आउटपुट में कलाकृति अधिक बड़ी दिखती है: पिक्सेल चौड़ाई के साथ एक्सपोर्ट क्षेत्र की तुलना करें।

Inkscape PNG एक्सपोर्ट मार्गदर्शिका इन चुनावों के पीछे पेज, चित्र, चयन और बैकग्राउंड की अवधारणाएँ समझाती है। PNG रास्टर वितरण फ़ाइल है, इसलिए संपादन के लिए SVG रखें। स्रोत में वास्तव में क्या है, यह जाँचना हो तो SVG फ़ाइल मार्गदर्शिका देखें।

अलग स्वचालन तरीके की तुलना कर रहे हों तो हमारी Sharp से SVG को PNG बनाने की मार्गदर्शिका उस लाइब्रेरी के रेंडरर और आकार प्रक्रिया को समझाती है। उसके API विकल्प सीधे Inkscape में लागू नहीं होते।

मूल कलाकृति केवल PNG या JPG में हो तो PerfectVector का इमेज वेक्टराइज़र एक्सपोर्ट के इस चरण से पहले संपादन योग्य वेक्टर कलाकृति तैयार कर सकता है। संपादक में वापस प्राप्त पाथ जाँचें, फिर पेज फ़्रेम और ऑब्जेक्ट ID चुनें। Inkscape की Trace Bitmap प्रक्रिया तैयारी का दूसरा तरीका है। ज़रूरी पाथ वाला SVG सीधे एक्सपोर्ट किया जा सकता है।

अक्सर पूछे जाने वाले सवाल

पेज और चित्र एक्सपोर्ट के आकार अलग क्यों हैं? उनकी सीमाओं के अनुपात अलग हो सकते हैं। हमारे परीक्षण में दोनों ने 600 पिक्सेल चौड़ाई माँगी, लेकिन 600 गुणा 360 पेज का PNG, 400 गुणा 180 चित्र सीमा से अधिक ऊँचा बना।

export-id में दूसरा ऑब्जेक्ट अब भी क्यों है? यह लक्ष्य ऑब्जेक्ट की एक्सपोर्ट सीमा चुनता है। वह सीमा पार करती दूसरी कलाकृति दिख सकती है। दूसरे ऑब्जेक्ट छिपाने के लिए export-id-only जोड़ें।

क्या PNG बनाने का यह समूह SVG स्रोत को ओवरराइट करता है? दिखाई कमांड master.svg पढ़ती हैं और अलग नाम के PNG लिखती हैं। परीक्षण के बाद स्रोत हैश नहीं बदला। मूल और वितरण फ़ाइलें अलग रखें तथा स्क्रिप्ट में जोड़ने से पहले अतिरिक्त संपादन या सेव क्रियाएँ जाँचें।

स्रोत

  1. Inkscape Wiki — कमांड लाइन इस्तेमाल करना — एक्सपोर्ट प्रक्रिया और ऑब्जेक्ट क्रॉप तथा अलग ऑब्जेक्ट आउटपुट का अंतर।
  2. Inkscape — कमांड लाइन मैनुअल — क्षेत्र, ऑब्जेक्ट, आकार, बैकग्राउंड और आउटपुट विकल्प।
  3. Inkscape शुरुआती मार्गदर्शिका — PNG फ़ाइल एक्सपोर्ट करना — एक्सपोर्ट क्षेत्र और पारदर्शिता की अवधारणाएँ।

कलाकृति को अब भी वेक्टर पाथ चाहिए तो इमेज वेक्टराइज़ करें और पहले परिणाम जाँचें। फिर SVG मूल प्रति सेव करें, एक एक्सपोर्ट दायरा चुनें और समूह दोहराने से पहले पहले PNG के क्रॉप तथा आयाम जाँचें।

Blog से और

ऐसे साफ़ SVG से शुरुआत करें
जिसे एडिट करना आसान हो