SVG ऑप्टिमाइज़र
XML मेटाडेटा हटाओ, कमेंट्स स्ट्रिप करो और व्हाइटस्पेस कोलैप्स करो ताकि SVG आर्टवर्क तेजी से शिप हो।
वेक्टर्स ऑप्टिमाइज़ हो रहे हैं...
SVG आइकन्स, इलस्ट्रेशन्स या ज़िप्ड लाइब्रेरीज़ ड्रॉप करो
सब कुछ क्लाइंट-साइड पर रहता है जब तक तुम क्लीनअप अप्रूव नहीं करते, और प्रीव्यूज़ पाथ बदलाव हाइलाइट करते हैं।
SVG क्यू
- मिनिफाई करने से पहले उनका साइज़ और स्टेटस प्रीव्यू करने के लिए SVG फाइलें जोड़ो।
ऑप्टिमाइज़्ड SVGs यहाँ साइज़ बचत और डाउनलोड बटन के साथ दिखेंगे।
SVG optimizer SVG फ़ाइलों से टेक्स्ट स्तर पर अनावश्यक डेटा हटाता है। यह XML टिप्पणियों, वैकल्पिक XML घोषणा, और पूरे मेटाडेटा ब्लॉक को हटाता है, फिर टैग के बीच की खाली जगह को समेट देता है। दृश्यमान मार्कअप, विशेषताएं, पाथ, और रेंडरिंग व्यवहार अपरिवर्तित रहते हैं। प्रति बैच 50 फ़ाइलें तक, प्रति फ़ाइल 40 MB तक। आमतौर पर हाथ से लिखी गई या डिज़ाइन टूल द्वारा निर्यात की गई फ़ाइलें 20 से 60 प्रतिशत तक संपीड़ित होती हैं, बिना किसी दृश्य अंतर के।
Optimizer क्या हटाता है
तीन स्वतंत्र विकल्प, प्रत्येक किसी भी मान्य SVG पर लागू करना सुरक्षित है:
- XML टिप्पणियों को हटाएं: सभी
<!-- ... -->ब्लॉक को हटाता है। टिप्पणियां डिज़ाइन टूल निर्यात में आम हैं (Illustrator, Sketch, Figma सभी "Generator: Sketch 96" जैसी टिप्पणियां जोड़ते हैं) लेकिन रेंडरर द्वारा पूरी तरह से अनदेखा की जाती हैं। - मेटाडेटा को हटाएं: पूरे
<metadata>...</metadata>ब्लॉक को हटाता है (जिसमें अक्सर RDF, लाइसेंस जानकारी, या डिज़ाइन टूल ट्रैकिंग डेटा होता है) और फ़ाइल के शीर्ष पर वैकल्पिक<?xml ... ?>घोषणा। दोनों ही प्रदान किए गए आउटपुट के लिए अदृश्य हैं और आमतौर पर प्रति फ़ाइल 100 से 500 बाइट जोड़ते हैं। - खाली जगह को समेटें: टैग के बीच की खाली जगह (वह इंडेंटेशन जो SVG को मानव-पठनीय बनाता है) को हटाता है और कई स्पेस को एक स्पेस में समेट देता है। अधिकांश डिज़ाइन टूल SVG को संपादक प्रदर्शन के लिए इंडेंट करके निर्यात करते हैं; रेंडरर को इससे कोई फर्क नहीं पड़ता।
Optimizer क्या नहीं छूता है
Optimizer जानबूझकर रूढ़िवादी है। यह केवल वास्तविक SVG सामग्री के चारों ओर टेक्स्ट को संशोधित करता है; यह SVG को नहीं छूता है। विशेष रूप से:
- पाथ डेटा अपरिवर्तित है। पाथ निर्देशांक, दशमलव सटीकता, और वक्र आदेश बिल्कुल वैसे ही रखे जाते हैं जैसे स्रोत ने लिखा था। एक 14-दशमलव-स्थान वाला निर्देशांक 14 दशमलव स्थान पर रहता है।
- विशेषताएं शब्दशः रखी जाती हैं। कोई डुप्लिकेशन नहीं, कोई सरलीकरण नहीं, रंग मानों को छोटा करना नहीं, transforms को समेकित करना नहीं।
- कोई element pruning नहीं। अदृश्य elements, अप्रयुक्त defs, और शून्य-आकार की आकृतियां संरक्षित की जाती हैं।
- कोई viewBox या आयाम पुनर्गणना नहीं।
लाभ सुरक्षा है: आउटपुट हर ब्राउज़र पर स्रोत के समान रेंडर होता है। नुकसान यह है कि आप एक जटिल SVG से बिल्कुल अंतिम बाइट को निचोड़ नहीं सकते जैसे एक पूर्ण optimizer (सभी plugins सक्षम के साथ SVGO) कर सकता है। अधिकांश हाथ से लिखी गई या डिज़ाइन टूल द्वारा निर्यात की गई SVGs के लिए, टिप्पणी, मेटाडेटा, और खाली जगह हटाने से ही 20 से 60 प्रतिशत बचत होती है, जो सामान्य स्थिति को कवर करती है। यदि आपको गहरे optimization की आवश्यकता है (पाथ सरलीकरण, दशमलव rounding, रंग को छोटा करना), तो बाद में SVGO जैसे एक समर्पित टूल का उपयोग करें।
SVG Optimization कब महत्वपूर्ण है
- वेब पर भेजे गए Icon sets: एक सामान्य UI में दर्जनों SVG icons होते हैं। प्रत्येक को deploy से पहले optimize करने से हर पृष्ठ लोड में यह जमा होता है।
- HTML में inline SVGs: जब SVG को सीधे पृष्ठ स्रोत में एम्बेड किया जाता है (बाहरी फ़ाइल के रूप में लोड करने के बजाय), अनावश्यक डेटा का हर बाइट HTML payload में जोड़ता है जो पहली पेंट को ब्लॉक करता है।
- लैंडिंग पृष्ठों पर SVG illustrations: Illustrator या Figma से निर्यात किए गए hero illustrations में आमतौर पर 30 से 50 प्रतिशत अदृश्य overhead होता है।
- Logos और favicons: ब्रांड SVG साइट के हर पृष्ठ पर लोड होता है। इसे एक बार trim करने से स्थायी बचत मिलती है।
- Mobile apps में SVG assets: ऐप bundle का आकार महत्वपूर्ण है; स्वच्छ SVGs छोटे bundles में भेज दिए जाते हैं।
Workflow नोट्स
Deploy या commit से पहले अंतिम चरण के रूप में optimize करें। आउटपुट अभी भी एक पूरी तरह से संपादन योग्य SVG है (optimizer केवल अदृश्य सामग्री को हटाता है), लेकिन यह अब मानव-अनुकूल नहीं है क्योंकि खाली जगह समेट दी गई है। अपनी स्रोत फ़ाइलों को मूल इंडेंटेड फॉर्म में रखें ताकि आप अपने डिज़ाइन टूल में संपादन जारी रख सकें या बाद में मार्कअप को हाथ से समायोजित कर सकें। उन फ़ाइलों के लिए जहां optimizer की बचत पर्याप्त नहीं है (कई पाथ निर्देशांक वाले भारी illustrations), प्रकाशन से पहले परिणाम को SVGO जैसे एक पाथ-aware optimizer के माध्यम से चलाने पर विचार करें।
SVG एक vector format है और किसी भी आकार पर स्पष्ट रूप से रेंडर होता है, लेकिन यदि आपको वास्तव में एक raster आउटपुट की आवश्यकता है ऐसे संदर्भ के लिए जो SVG को सपोर्ट नहीं करता है (पुराने email clients, कुछ print pipelines), image converter SVG को PNG, JPG, या WebP में किसी भी पिक्सल आयाम पर रेंडर करता है। SVGs के एक सेट को एक एकल साझा दस्तावेज़ में bundle करने के लिए, image-to-PDF converter उन्हें एक बहु-पृष्ठ PDF में पैक करता है।
Batch Optimization और Privacy
प्रत्येक optimization सर्वर पर memory में चलता है। फ़ाइलें optimizer endpoint तक stream होती हैं, टेक्स्ट के रूप में प्रोसेस की जाती हैं (SVG स्वयं टेक्स्ट है, JPG या PNG जैसी binary नहीं), और JSON response में वापस आती हैं। कुछ भी disk पर नहीं लिखा जाता, indexed नहीं किया जाता, logged नहीं किया जाता, या cached नहीं किया जाता। buffer को response भेजने के तुरंत बाद release कर दिया जाता है। प्रति बैच 50 फ़ाइलें तक, प्रति फ़ाइल 40 MB तक। ZIP archives को सर्वर-साइड पर unpack किया जाता है और प्रत्येक entry एक ही 50-फ़ाइल सीमा के विरुद्ध गिना जाता है। एक ही तीन विकल्प बैच में हर फ़ाइल पर लागू होते हैं। Outputs को अलग-अलग लौटाया जाता है या एक फ़ाइल से ऊपर के batches के लिए एक एकल download ZIP में फिर से पैक किया जाता है।
FAQ
अधिकांश हाथ से लिखी गई या डिज़ाइन-टूल द्वारा निर्यात की गई SVGs के लिए, 20 से 60 प्रतिशत आकार में कमी की उम्मीद करें। सटीक बचत इस बात पर निर्भर करती है कि स्रोत कैसे जेनरेट किया गया था। Illustrator और Sketch निर्यात जिनमें embedded metadata, टिप्पणियां, और इंडेंटेड मार्कअप हैं सबसे अधिक बचत करते हैं (अक्सर 40 प्रतिशत से ऊपर)। पहले से स्वच्छ SVGs (हाथ से लिखी गई या किसी अन्य टूल द्वारा पूर्व-सफाई) कम बचत करती हैं। बचत टिप्पणियों, मेटाडेटा ब्लॉक, XML घोषणा, और टैग के बीच की खाली जगह से आती है। वास्तविक दृश्यमान मार्कअप अपरिवर्तित है।
हां। Optimizer केवल XML टिप्पणियों, मेटाडेटा ब्लॉक, XML घोषणा, और टैग के बीच की खाली जगह को हटाता है। इनमें से कोई भी rendering को प्रभावित नहीं करता है। पाथ निर्देशांक, विशेषताएं, fills, strokes, transforms, viewBox, gradients, filters, और animations सभी अपरिवर्तित होकर आगे बढ़ते हैं। आउटपुट हर ब्राउज़र में pixel-identical परिणाम देता है।
नहीं। पाथ डेटा शब्दशः संरक्षित है। 47.3892756432198 के रूप में लिखा गया एक निर्देशांक आउटपुट में 13 दशमलव स्थान पर रहता है। Optimizer जानबूझकर रूढ़िवादी है; यह SVG geometry को बिल्कुल नहीं छूता है। यह आउटपुट को guaranteed-safe रखता है और स्रोत के समान दृश्यमान है। गहरे optimization के लिए जिसमें दशमलव rounding और पाथ सरलीकरण शामिल है, optimized फ़ाइल को बाद में SVGO जैसे एक समर्पित टूल के माध्यम से चलाएं।
HTML में inline SVG के लिए या आधुनिक ब्राउज़र में img/object tags के माध्यम से reference किए गए SVG के लिए, हां। XML declaration (<?xml version="1.0" encoding="UTF-8"?>) वैकल्पिक है और आमतौर पर inline SVG से छोड़ दिया जाता है। application/svg+xml MIME type के साथ served standalone SVG फ़ाइलों के लिए, declaration तकनीकी रूप से XML spec द्वारा अनुशंसित है लेकिन कोई भी आधुनिक ब्राउज़र इसकी आवश्यकता नहीं रखता है। यदि आपके पास कोई विशिष्ट consumer है जो इसकी अनुपस्थिति के बारे में शिकायत करता है (एक print workflow, एक पुराना XML parser), metadata-removal विकल्प को बंद करें declaration को जगह में रखने के लिए।
हां, optimized फ़ाइल अभी भी एक पूरी तरह से मान्य SVG है जो किसी भी vector editor (Illustrator, Inkscape, Figma, Sketch, आदि) में खुलती है। हालांकि, collapsed whitespace स्रोत को काफी कम पठनीय बनाता है यदि आप इसे manual tweaks के लिए एक text editor में खोलते हैं। अनुशंसित workflow यह है कि मूल indented संस्करण को अपने source of truth के रूप में रखें, और केवल optimized संस्करण को production में feed करें। जब आपको changes करने की आवश्यकता हो, source को edit करें और optimizer को फिर से चलाएं।
नहीं। SMIL animations (animate, animateTransform, animateMotion), CSS classes और inline styles, JavaScript hooks via IDs, और click/hover interaction targets सभी दृश्यमान मार्कअप में रहते हैं, जिसे optimizer नहीं छूता है। केवल टिप्पणियां, मेटाडेटा ब्लॉक, XML declaration, और inter-tag whitespace को हटाया जाता है। Animated logos, interactive SVG diagrams, और embedded CSS animations बिल्कुल वैसे ही काम करते हैं जैसे पहले।
SVGO एक गहरा optimizer है जो SVG को semantically समझता है; यह पाथ को सरल बना सकता है, दशमलव निर्देशांक को round कर सकता है, विशेषताओं को deduplicate कर सकता है, sibling elements को merge कर सकता है, unused defs को drop कर सकता है, रंग मानों को छोटा कर सकता है, और बहुत कुछ। यह टूल एक lightweight text-level cleaner है जो केवल टिप्पणियों, मेटाडेटा, और whitespace को हटाता है। अंतर conservatism में है: यह टूल कभी भी SVG को break नहीं करेगा क्योंकि यह geometry या विशेषताओं को नहीं छूता है; SVGO कभी-कभी subtle rendering differences introduce कर सकता है जब इसके aggressive plugins में से एक चलता है। अधिकांश use cases के लिए, यहां lightweight cleanup काफी है। minimal-byte optimization के लिए, बाद में SVGO को चलाएं।
हां। प्रति batch 50 SVG फ़ाइलें तक, प्रति फ़ाइल 40 MB तक। एक ही तीन विकल्प (टिप्पणियों को हटाएं, मेटाडेटा को हटाएं, whitespace को समेटें) batch में हर फ़ाइल पर लागू होते हैं, जो वह है जो आप पूरे icon set या डिज़ाइन-टूल निर्यात के folder को optimize करते समय चाहते हैं। ZIP archives को सर्वर-साइड पर unpack किया जाता है और प्रत्येक entry एक ही 50-फ़ाइल सीमा के विरुद्ध गिना जाता है। Outputs को अलग-अलग लौटाया जाता है या एक एकल download ZIP में फिर से पैक किया जाता है।
नहीं। फ़ाइलें पूरी तरह से सर्वर पर memory में टेक्स्ट के रूप में प्रोसेस की जाती हैं। कुछ भी disk पर नहीं लिखा जाता, indexed नहीं किया जाता, logged नहीं किया जाता, या cached नहीं किया जाता। Buffer को response भेजने के तुरंत बाद release कर दिया जाता है। टूल को कोई registration की आवश्यकता नहीं है और यह track नहीं करता कि आपने कौन सी SVG फ़ाइलें optimize की हैं।
कोई registration के साथ मुफ़्त। कोई rate limits नहीं, आउटपुट में कोई watermarks नहीं जोड़े गए, कोई premium tier नहीं जिसमें अतिरिक्त features को hold back किया गया हो। यही सभी imgdeal tools पर लागू होता है, जिसमें format conversion, compression, resizing, और cropping शामिल हैं।