SVG अनुकूलक

अनावश्यक टिप्पणियों, मेटाडेटा और रिक्त स्थान को हटाकर अपनी SVG फ़ाइलों को अनुकूलित और मिनीफ़ाई करें।

पूर्वावलोकन

SVG अनुकूलन के बारे में

Illustrator, Figma या Inkscape से निर्यात की गई SVG फ़ाइलों में अक्सर मेटाडेटा, टिप्पणियाँ, संपादक-विशिष्ट एट्रिब्यूट होते हैं जिन्हें हटाया जा सकता है।

यह कैसे काम करता है

  1. SVG पेस्ट या अपलोड करें: SVG मार्कअप सीधे दर्ज करें या Illustrator, Figma, Inkscape से निर्यात की गई .svg फ़ाइल अपलोड करें।
  2. अनुकूलन पासेस कॉन्फ़िगर करें: चुनें कि कौन से अनुकूलन लागू करें, टिप्पणी हटाना, मेटाडेटा हटाना, आदि।
  3. अनुकूलित करें: टूल चुने गए पासेस चलाता है और आकार कमी प्रतिशत प्रदर्शित करता है।
  4. डाउनलोड या कॉपी करें: अनुकूलित SVG सहेजें या मार्कअप को अपने कोड में पेस्ट करने के लिए कॉपी करें।

अपने SVG क्यों अनुकूलित करें?

डिज़ाइन टूल से निर्यात की गई SVG फ़ाइलें अनावश्यक डेटा से भरी होती हैं, संपादक मेटाडेटा, इनलाइन शैली घोषणाएँ आदि।

लागू अनुकूलन

SVG और SVGO का संक्षिप्त इतिहास

Scalable Vector Graphics दो W3C प्रस्तावों के बीच प्रतिस्पर्धा के रूप में शुरू हुआ: Adobe, IBM, Netscape और Sun का Precision Graphics Markup Language (PGML), और Microsoft का Vector Markup Language (VML)। दोनों 1998 में जमा किए गए थे; W3C समझौता SVG बन गया, सितंबर 2001 में SVG 1.0 के रूप में अनुशंसित। Internet Explorer ने कुख्यात रूप से IE9 (2011) तक SVG समर्थन भेजने से इनकार कर दिया, जबकि Firefox, Safari और Opera ने इसे 2000 के दशक के मध्य से समर्थित किया। SVG 1.1 2003 में दिखाई दिया, जिसका दूसरा संस्करण 2011 में था। SVG Tiny 1.2 ने 2008 में मोबाइल उपकरणों को लक्षित किया। SVG 2 ने 2016 के आसपास ड्राफ्ट करना शुरू किया लेकिन रुक गया; आज यह एक उम्मीदवार सिफारिश मसौदा बना हुआ है (अंतिम बार 2018 में छुआ गया), जिसमें ब्राउज़र व्यक्तिगत रूप से टुकड़े शिप करते हैं। अनुकूलन बाद में आया। SVGO को Kir Belevich (svg-go) द्वारा बनाया गया था और पहली बार अक्टूबर 2012 में GitHub पर प्रकाशित किया गया था, जावास्क्रिप्ट में लिखा गया था। यह वास्तविक मानक बन गया, webpack-loader, Vite, Sketch, Figma एक्सपोर्ट प्लगइन्स में एकीकृत, और Jake Archibald (Chrome टीम) द्वारा 2015 में लॉन्च किया गया SVGOMG वेब UI। SVGO 3 (2023 में जारी) ने कोडबेस को आधुनिक बनाया। यह उपकरण SVGO के सबसे प्रभावशाली प्लगइन्स का एक सुरक्षित सबसेट लागू करता है, पूरी तरह से आपके ब्राउज़र में चल रहा है।

एक SVG ऑप्टिमाइज़र वास्तव में क्या करता है

जहाँ SVG अनुकूलन मायने रखता है

अनुकूलन गलतियाँ जो SVG को तोड़ती हैं

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

SVG अनुकूलन वास्तव में कितना बचा सकता है?

यह स्रोत पर बहुत निर्भर करता है। Adobe Illustrator निर्यात अक्सर पहले पास पर 60-80% सिकुड़ते हैं, ज्यादातर मेटाडेटा, संपादक नेमस्पेस, और दशमलव-परिशुद्धता कमी से। Figma निर्यात बॉक्स से बाहर अधिक स्वच्छ होते हैं (आम तौर पर 20-40% बचत)। एक डेवलपर द्वारा हस्तलिखित SVG? अक्सर 5-15%, क्योंकि छीनने के लिए ज्यादा कुछ नहीं है। Wikipedia लोगो, Illustrator फूलापन का एक चरम मामला, 39 KB से 11 KB तक गया। Figma से एक विशिष्ट 24×24 आइकन 1.4 KB से 0.6 KB तक गिरता है।

मुझे SVG को कब इनलाइन करना चाहिए बनाम बाहरी फ़ाइल के रूप में उपयोग करना चाहिए?

इनलाइन (HTML में <svg>...</svg>) छोटे आइकन (2 KB से कम) के लिए, फोल्ड के ऊपर महत्वपूर्ण सामग्री, और कहीं भी जहाँ आपको SVG को स्टाइल करने के लिए CSS की आवश्यकता है (उदा. currentColor, होवर स्टेट, डार्क मोड)। बाहरी फ़ाइल (<img src="icon.svg"> या CSS background-image) बार-बार उपयोग किए जाने वाले समान आइकन के लिए (ब्राउज़र कैश करता है), बड़े चित्रण, CSS थीमिंग की आवश्यकता नहीं है। SVG स्प्राइट (एकल फ़ाइल में कई <symbol> तत्व, <use> द्वारा संदर्भित) 2014-2019 का आइकन-सिस्टम पैटर्न था, अब बड़े पैमाने पर React/Vue/Svelte में इनलाइन-svg घटकों द्वारा प्रतिस्थापित।

क्या असंतुलित SVG में सुरक्षा जोखिम हैं?

हाँ। SVG <script> टैग और onload, onclick इवेंट हैंडलर एम्बेड कर सकता है; उपयोगकर्ता-अपलोडेड SVG एक XSS वेक्टर हैं। SVG <image href="..."> के माध्यम से बाहरी संसाधनों को संदर्भित कर सकता है, दर्शक का IP लीक कर सकता है। SVG फ़ॉन्ट (बहिष्कृत लेकिन अभी भी पार्स योग्य) में ऐतिहासिक रूप से बफर ओवरफ्लो था। एक अच्छा ऑप्टिमाइज़र सफाई के हिस्से के रूप में <script> और इवेंट हैंडलर को छीन देता है; यदि आप उपयोगकर्ता SVG अपलोड स्वीकार करते हैं, तो सेवा से पहले उन्हें कठोर सैनिटाइज़र (SVG प्रोफ़ाइल के साथ DOMPurify) के माध्यम से चलाएँ।

क्या मैं कमांड लाइन का उपयोग करके SVG को अनुकूलित कर सकता हूँ?

हाँ। npx svgo input.svg -o output.svg कैनोनिकल SVGO लाइब्रेरी का उपयोग करता है। svgo.config.js के माध्यम से प्लगइन्स कॉन्फ़िगर करें। CI एकीकरण: webpack में imagemin-svgo, vite-plugin-svgo, GitHub Action antfu/svg-opt। बैच अनुकूलन के लिए: svgo -f ./icons -o ./icons-optimised। यहाँ का ब्राउज़र टूल एक बार के लिए तेज़ है और Node स्थापित किए बिना काम करता है।

क्या मेरा SVG यहाँ अनुकूलित करते समय सर्वर पर भेजा जाता है?

नहीं। अनुकूलन पूरी तरह से आपके ब्राउज़र में JavaScript के माध्यम से आपके द्वारा पेस्ट किए गए SVG मार्कअप पर चलता है। अनुकूलन करते समय DevTools में नेटवर्क टैब खोलें; आप शून्य आउटबाउंड अनुरोध देखेंगे। मालिकाना लोगो, अप्रकाशित आइकन डिज़ाइन, आंतरिक कॉर्पोरेट SVG, और NDA के अधीन किसी भी चीज़ के लिए सुरक्षित।

संबंधित टूल