इस प्रोजेक्ट के बारे में

LunaSVG, Scalable Vector Graphics (SVG) फ़ाइलों को रेंडर और मैनिपुलेट करने के लिए एक C++ लाइब्रेरी है, जिसे हल्का और पोर्टेबल बनाया गया है। यह स्टैटिक रेंडरिंग पर लक्षित है और SVG 1.1 तथा SVG 1.2 Tiny विनिर्देशों की लगभग सभी ग्राफ़िकल सुविधाओं का समर्थन करता है, सिवाय एनिमेशन, फ़िल्टर और स्क्रिप्ट के। एनिमेशन जोड़े जाने की संभावना कम है क्योंकि लाइब्रेरी स्टैटिक आउटपुट पर केंद्रित है, हालांकि फ़िल्टर समर्थन बाद में आ सकता है। मुख्य क्षमताएँ: - फ़ाइलों या इन-मेमोरी डेटा से SVG दस्तावेज़ लोड करें और उन्हें बिटमैप में रेंडर करें, PNG निर्यात के साथ। - रेंडरिंग से पहले दस्तावेज़ को पुनः स्टाइल करने के लिए रनटाइम पर बाहरी CSS स्टाइलशीट लागू करें, जिससे एक SVG स्रोत से मौसमी थीम जैसे वेरिएंट सक्षम होते हैं। - elementFromPoint(x, y) के माध्यम से हिट टेस्टिंग, जो किसी निर्देशांक के नीचे के एलिमेंट को लौटाता है; फिर stroke, stroke-width और transform जैसी विशेषताओं को संशोधित करके पुनः रेंडर किया जा सकता है। - व्यापक एलिमेंट कवरेज जिसमें a, circle, clipPath, defs, ellipse, g, image, line, linearGradient, marker, mask, path, pattern, polygon, polyline, radialGradient, rect, stop, style, svg, symbol, text, tspan और use शामिल हैं। इंस्टॉलेशन और एकीकरण: - CMake या Meson से बिल्ड करें। CMake उपयोगकर्ता इसे find_package(lunasvg) के माध्यम से इंस्टॉल और उपयोग कर सकते हैं और lunasvg::lunasvg को लिंक कर सकते हैं, या FetchContent के साथ इसे शामिल कर सकते हैं। Meson उपयोगकर्ता dependency('lunasvg') या एक wrap फ़ाइल का उपयोग कर सकते हैं। - एक बिल्ड विकल्प USE_SYSTEM_PLUTOVG (डिफ़ॉल्ट OFF) बंडल किए गए सबमॉड्यूल के बजाय सिस्टम plutovg 1.0.0+ के विरुद्ध लिंक करने की अनुमति देता है, और न मिलने पर सबमॉड्यूल पर वापस चला जाता है। टूलिंग: - एक कमांड-लाइन उपयोगिता svg2png, SVG फ़ाइलों को PNG में परिवर्तित करती है, जो एक वैकल्पिक रिज़ॉल्यूशन (जैसे 512x512) और बैकग्राउंड रंग (जैसे 0xff00ffff) स्वीकार करती है। अपनाना: README में LunaSVG का उपयोग करने वाली परियोजनाओं की सूची दी गई है, जिनमें OpenSiv3D, PICsimLab, MoneyManagerEx, RmlUi, EKA2L1, ObEngine, OTTO, EmulationStation-DE, Dear ImGui, Multi Theft Auto: San Andreas, CARLA Simulator, AUI Framework, node-canvas और pillow-lunasvg शामिल हैं। लाइसेंस: MIT।