প্রকল্প সম্পর্কে

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।