منصوبے کے بارے میں

LunaSVG ایک C++ لائبریری ہے جو Scalable Vector Graphics (SVG) فائلوں کو رینڈر اور تبدیل کرنے کے لیے بنائی گئی ہے، اور اسے ہلکا پھلکا اور پورٹیبل رکھا گیا ہے۔ یہ اسٹیٹک رینڈرنگ پر مرکوز ہے اور 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) کے ذریعے bundled submodule کے بجائے سسٹم plutovg 1.0.0+ سے لنک کیا جا سکتا ہے، اور نہ ملنے پر submodule پر واپس چلا جاتا ہے۔ ٹولنگ: - ایک کمانڈ لائن یوٹیلیٹی 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۔