تبدیل PNG به SVG C#

تبدیل PNG تصاویر به SVG فرمت یک کار حیاتی است وقتی که با گرافیک‌های وکتوری مقیاس‌پذیر سر و کار داریم، به‌ویژه در طراحی وب، هنر دیجیتال و برنامه‌های نرم‌افزاری که به تصاویر با کیفیت بالا بدون پیکسل‌زدگی نیاز دارند. تصاویر PNG مبتنی بر رَسَتر هستند، به این معنی که از پیکسل‌ها تشکیل شده‌اند و ممکن است هنگام مقیاس‌گذاری کیفیت خود را از دست بدهند. از سوی دیگر، SVG (گرافیک‌های وکتوری مقیاس‌پذیر) یک فرمت وکتوری است که کیفیت تصویر را در هر وضوحی حفظ می‌کند.

تبدیل کننده PNG به SVG - نصب API C#

برای تبدیل تصاویر PNG به تصویر SVG، شما نیاز دارید Conholdate.Total برای .NET را از قسمت New Releases نصب کنید یا دستور نصب NuGet زیر را اجرا کنید:

Install-Package Conholdate.Total 

چرا PNG را به SVG تبدیل کنیم؟

دلایل متعددی وجود دارد که تصاویر PNG را به فرمت SVG تبدیل کنید:

  • قابلیت مقیاس‌پذیری بدون از دست دادن کیفیت: بر خلاف تصاویر PNG که هنگام تغییر اندازه کیفیت آنها کاهش می‌یابد، فایل‌های SVG در هر رزولوشنی تیز و واضح باقی می‌مانند. این موضوع به ویژه برای طراحی وب پاسخگو و نمایشگرهای با DPI بالا مفید است.

  • اندازه‌های فایل کوچکتر برای گرافیک‌های خاص: فایل‌های SVG معمولاً از PNG ها کوچکتر هستند هنگامی که با آیکون‌ها، لوگوها و تصاویر ساده سر و کار داریم، که آنها را برای استفاده در وب ایده‌آل می‌سازد جایی که بهینه‌سازی عملکرد بسیار حائز اهمیت است.

  • قابل ویرایش و قابل تنظیم: تصاویر SVG به راحتی با استفاده از ویرایشگرهای مبتنی بر متن یا ابزارهای گرافیکی وکتور مانند Adobe Illustrator و Inkscape ویرایش می‌شوند. این امر آنها را برای گرافیک‌های تولید شده به‌طور پویا در برنامه‌های وب مناسب می‌سازد.

  • عملکرد بهتر در برنامه‌های وب: از آنجا که تصاویر SVG بر اساس XML هستند، می‌توان آن‌ها را از طریق CSS و JavaScript دستکاری کرد، که امکان تغییرات پویا را بدون نیاز به فایل‌های تصویری جدید فراهم می‌آورد.

تبدیل PNG به SVG در C#

برای تبدیل یک تصویر PNG به فرمت SVG در C#، از Conholdate.Total برای .NET استفاده خواهیم کرد. این قابلیت‌های قدرتمند وکتوریزه کردن تصویر را فراهم می‌کند که اجازه می‌دهد تبدیل بی‌دردسری از تصاویر رستری به گرافیک‌های وکتوری مقیاس‌پذیر انجام شود.

  • در حال راه‌اندازی ImageVectorizer: کلاس ImageVectorizer برای انجام تبدیل PNG به SVG راه‌اندازی می‌شود.

  • تنظیم پارامترهای پیکربندی:

    • خصوصیت PathBuilder به یک BezierPathBuilder اختصاص داده شده است که ساختار مسیر برداری را تعیین می‌کند.

    • TraceSmoother به کاهش نویز و بهبود تراس برای خروجی وکتور تمیزتر کمک می‌کند.

    • مقادیر ErrorThreshold و MaxIterations دقت فرآیند وکتور سازی را کنترل می کنند.

    • ColorsLimit تعداد رنگ‌ها را در خروجی وکتوری محدود می‌کند و پیچیدگی را کاهش می‌دهد.

    • LineWidth ضخامت مسیرهای وکتور شده را تعریف می‌کند.

  • وکتوریزه کردن PNG: متد Vectorize تصویر پیکسلی را پردازش کرده و نمایندگی وکتور ایجاد می‌کند.

  • ذخیره خروجی: روش Save فایل SVG نهایی را بر روی دیسک می‌نویسد.

کد زیر نشان می‌دهد که چگونه PNG را در C# به SVG تبدیل کنیم:

// یک نمونه از کلاس ImageVectorizer را راه‌اندازی کنید
var vectorizer = new Aspose.Svg.ImageVectorization.ImageVectorizer
{
    // تنظیمات پیکربندی
    Configuration =
    {
        // Set path builder
        PathBuilder = new Aspose.Svg.ImageVectorization.BezierPathBuilder {
            // Set trace smoother
            TraceSmoother = new Aspose.Svg.ImageVectorization.ImageTraceSmoother(1),
            ErrorThreshold =  30,
            MaxIterations = 30
        },
        ColorsLimit = 25,
        LineWidth = 1
    }
};

// تبدیل PNG به وکتور
using var document = vectorizer.Vectorize("source.png");

// ذخیره PNG وکتوری به عنوان فایل SVG 
document.Save("source_out.svg");

مجوز ارزیابی رایگان

شما می‌توانید یک مجوز موقت رایگان برای آزمایش ویژگی‌های مختلف ارائه شده توسط API بدون هیچ گونه محدودیت ارزیابی دریافت کنید.

جمع بندی

تبدیل تصاویر PNG به فرمت SVG در C# یک تکنیک اساسی برای دستیابی به گرافیک‌های وکتوری با کیفیت بالا و مقیاس‌پذیر است. با استفاده از Conholdate.Total برای .NET، توسعه‌دهندگان می‌توانند این تبدیل را با دقت بالا و تلاش حداقل انجام دهند. چه در حال کار بر روی برنامه‌های وب، آثار دیجیتال یا گرافیک‌های چاپی باشید، این رویکرد کیفیت و انعطاف‌پذیری بهینه تصویر را تضمین می‌کند. با این حال، اگر نیاز به بحث در مورد هر یک از ابهامات خود دارید، لطفاً با ما در forum تماس بگیرید.

See Also