نحوه تبدیل دستهای PNG به SVG (مقایسه 5 روش)
پنج روش تستشده برای تبدیل همزمان چندین فایل PNG به SVG - ابزارهای آنلاین، هات فولدر (hot folder)، برنامههای دسکتاپ رایگان، اسکریپتها و API - که از نظر هزینه، سرعت پردازش، پشتیبانی از رنگ و حریم خصوصی مقایسه شدهاند.
مشکل پردازش دستهای - و دامی که باید از آن اجتناب کرد
شما ده فایل PNG دارید. یا چهارصد تا. یا - مانند طراحی که سوالش در مورد 51,000 فایل یکی از طولانیترین بحثها را در انجمنهای کاربری Adobe آغاز کرد - یک کتابخانه کامل از داراییهای گرافیکی که باید وکتور شوند. تبدیل دستی یک تصویر مشکلی ندارد؛ اما فراتر از آن نقطه، شما به یک گردش کار پردازش دستهای نیاز دارید: فرآیندی که یک پوشه کامل از تصاویر پیکسلی (raster) را به یک پوشه SVG تبدیل کند. و اگر امروز واقعاً فقط یک فایل مهم دارید، مبدل رایگان آنلاین PNG به SVGکار را در کمتر از یک دقیقه انجام میدهد - این راهنما همه چیز فراتر از آن را پوشش میدهد.
قبل از مقایسه روشها به یک تعریف نیاز داریم. تبدیل دستهای واقعی به این معنی است که تک تک فایلهای PNG وکتور میشوند: شکلهای آنها به عنوان مسیرهای ریاضی (path) دوباره ترسیم میشوند، که این دقیقاً همان کاری است که وکتور کردن انجام میدهد. بسیاری از ابزارها این مرحله را به طور کامل نادیده میگیرند و این همه چیز را در خروجی نهایی تغییر میدهد.
رایجترین نوع شکست: برخی "مبدلهای SVG" اصلاً هیچ ردیابی (tracing) انجام نمیدهند - آنها فقط فایل PNG شما را به عنوان یک تصویر تعبیهشده در داخل یک فایل .svg بستهبندی میکنند. به نظر میرسد که نتیجه به شکل "کاملی" تغییر اندازه میدهد، زیرا هنوز هم یک تصویر پیکسلی در لباس مبدل است. هر فایل خروجی را در یک ویرایشگر متن باز کنید: وجود یک تگ عظیم <image> با فرمت base64 به جای عناصر <path> به این معنی است که شما چیزی را وکتور نکردهاید. تک تک روشهای زیر بر اساس انجام ردیابی واقعی ارزیابی شدهاند.
نتایج واقعی مبدل
روش 1: مبدلهای دستهای آنلاین
سریعترین راه برای یک دسته کوچک. چندین ابزار آنلاین وجود دارند که چندین فایل را به صورت همزمان میپذیرند: to.imagestool.com به شما امکان میدهد مجموعهای از PNGها را کشیده و رها کنید (drag and drop) و آنها را به صورت محلی در مرورگر پردازش میکند؛ Pixelied آپلودهای گروهی را میپذیرد و یک فایل ZIP از نتایج به شما میدهد؛ نسخه آزمایشی وب ImageResizer.com و reaConverter نیز به همین شکل کار میکنند. هیچ نصب و هیچ خط فرمانی در کار نیست - فایلها را رها کنید، نتایج را دانلود کنید.
قبل از اینکه کار واقعی را به آنها بسپارید، دو چیز را بررسی کنید. اول، مطمئن شوید که ابزار واقعاً ردیابی را انجام میدهد: برخی سایتهای "دستهای" به سادگی تبدیلهای تکفایلی را در سرور تکرار میکنند و یک فایل ZIP از SVGهای تقلبی به شما برمیگردانند - این همان دام تعبیهسازی است که در هشدار بالا گفته شد. دوم، اگر آثار هنری تجاری هستند یا تحت قرارداد محرمانگی (NDA) قرار دارند، شرایط حریم خصوصی را بخوانید: ابزارهای مبتنی بر مرورگر هرگز فایلهای شما را آپلود نمیکنند، اما ابزارهای مبتنی بر سرور تک تک تصاویر را به ماشین شخص دیگری ارسال میکنند. برای شفافیت کامل: مبدل آنلاین رایگانِ خود PixelToPath عمداً طوری طراحی شده است که فقط برای تک فایلها کار کند. این ابزاری مناسب برای آن یک لوگوی مهم است، نه برای پوشهای با چهارصد فایل - و دقیقاً با همین جایگاه در این مقایسه حضور دارد.
روش 2: یک برنامه دسکتاپ با هات فولدر (PixelToPath Pro)
اگر پردازش دستهای به جای یک کار یکباره، یک کار روتین هفتگی است، هات فولدر (hot folder) مرحله دستی را به طور کامل حذف میکند. PixelToPath Pro (برای ویندوز و لینوکس) یک پوشه را نظارت کرده و به صورت خودکار هر تصویری را که در آن قرار گیرد تبدیل میکند. کل این جریان شامل چهار مرحله است:
- پوشههای خود را انتخاب کنید: پوشهای برای نظارت و پوشه خروجی را که فایلهای SVG باید در آن قرار گیرند، انتخاب کنید.
- فایلهای PNG خود را رها کنید: کل دسته فایلها را، چه ده فایل چه چند صد فایل، در پوشه ورودی ذخیره، کپی یا درگ کنید.
- بگذارید کارش را بکند: هر فایل به محض ورود، با استفاده از پروفایل تنظیمات ذخیرهشده شما و کاملاً روی سیستم خودتان ردیابی میشود.
- فایلهای SVG را جمعآوری کنید: نتایج با نام فایلهای اصلی در پوشه خروجی ظاهر میشوند.
بخشی که برای پردازش دستهای اهمیت دارد: یک پروفایل تنظیمات برای کل صف اعمال میشود. اگر چهارصد آیکون را به صورت دستی تبدیل کنید، فایل شماره 300 هرگز با فایل شماره 12 کاملاً یکسان نخواهد بود؛ اما با یک پروفایل، هر خروجی سازگار و یکدست است - این همان جزئیاتی است که گردش کارهای دستی را خراب میکند. همه چیز به صورت محلی اجرا میشود، بنابراین هیچ محدودیت آپلودی وجود ندارد و هیچ فایلی هرگز از سیستم شما خارج نمیشود. نسخه Pro با پرداخت یکباره 39 یورو (بدون مالیات بر ارزش افزوده)، یک لایسنس مادامالعمر برای یک کاربر روی حداکثر 3 سیستم است؛ صفحه تبدیل دستهای با هات فولدر به تفصیل تمام موارد شاملشده را توضیح میدهد. این یکی از پنج گزینه موجود در اینجاست - اما تنها گزینهای است که ساخته شده تا تبدیل دستهای را به مرحلهای تبدیل کند که دیگر نیازی نیست به آن فکر کنید.
روش 3: برنامههای دسکتاپ رایگان و اینکسکیپ (Inkscape)
از قبل از برنامه دسکتاپ رایگان استفاده میکنید؟ این برنامه فایلهای PNG، JPG، BMP و WebP را به صورت آفلاین، بدون محدودیت تعداد فایل و با دسترسی کامل به تنظیمات پیشرفته ردیابی، به SVG تبدیل میکند - اما فقط یک فایل در هر بار. پردازش دستهای دقیقاً همان چیزی است که ارتقا به نسخه Pro اضافه میکند و بهتر است این را به صراحت بگوییم تا اینکه تظاهر به چیز دیگری کنیم. اگر چیزی رایگان، محلی و مبتنی بر رابط کاربری گرافیکی (GUI) میخواهید، مبدل دسکتاپ رایگان صادقانهترین انتخاب برای فایلهای تکی است: سرعت پردازش واقعبینانه در این حالت، دهها فایل در روز است نه صدها فایل.
اینکسکیپ (Inkscape) یکی دیگر از ابزارهای قدرتمند رایگان است. کادر محاورهای 'Trace Bitmap' آن نیز برای تصاویر تکی است و اگرچه اینکسکیپ گزینههای خط فرمانی را ارائه میدهد که میتوان آنها را در یک اسکریپت حلقه برنامهنویسی کرد، این تجربه دشوار و ناهموار است و به ندرت مستند شده است. در ضمن، GIMP اصلاً هیچ ابزار بومی برای خروجی وکتور به صورت دستهای ندارد - موضوعات انجمنهای آن به طور مرتب این را تایید میکنند. قبل از اینکه ساعتها زمان را روی یک گردش کار مبتنی بر GUI صرف کنید، بررسی کنید که آیا واقعاً برای هر فایل به وکتور نیاز دارید یا خیر: مقایسه SVG در برابر PNG برای وب توضیح میدهد که چه زمانی این تبدیل ارزشش را دارد.
روش 4: اسکریپتهای خط فرمان (ImageMagick، Potrace، VTracer)
برای کارهای حجیم یکباره، یک اسکریپت شِل ده خطی هر GUI را شکست میدهد. یک پایپلاین کلاسیک سیاهوسفید، ImageMagick را به Potrace متصل میکند - تبدیل کن، سپس ردیابی کن: magick input.png input.pbm && potrace -s -o input.svg input.pbm
این را در یک حلقه "for" بر روی پوشه خود بپیچید و Potrace مسیرهای وکتور واقعی را با سرعت پردازنده (CPU) شما تولید میکند - اما به شدت فقط به صورت سیاهوسفید. برای پشتیبانی از رنگ، همان حلقه را به سمت vtracer هدایت کنید، یک ردیاب متنباز مبتنی بر Rust که موتور پردازشی PixelToPath نیز هست. هر دوی این ابزارها آنقدر پرچم (flag) خط فرمان دارند که برای پر کردن یک دفترچه راهنما کافیست، به همین دلیل هر کدام یک راهنمای اختصاصی دارند (پس از انتشار در اینجا لینک داده خواهد شد). اسکریپتها در هزینه (رایگان)، حریم خصوصی (محلی) و حجم پردازش (هزاران فایل در هر اجرا) برنده میشوند؛ اما در شروع کار شکست میخورند - شما در حال نگهداری از یک پایپلاین هستید و هیچکس آن بعدازظهری را که اسکریپت از کار میافتد به شما برنمیگرداند.
روش 5: یک حلقه API برای CI و کارهای سمت سرور
هنگامی که تبدیلها باید روی یک سرور اتفاق بیفتند - در طول استقرار نرمافزار، در داخل یک پایپلاین بیلد (build pipeline)، از سمت بکاند (backend) - ابزارهای محلی دیگر گزینهای برای انتخاب نیستند. الگو در اینجا یک حلقه است: یک درخواست POST بدون وضعیت (stateless) به ازای هر تصویر با کلید Bearer شما، و هر فایل SVG مستقیماً در پایپلاین داراییهای شما نوشته میشود. محدودیت این روش 60 درخواست در دقیقه به ازای هر کلید است، بنابراین سرعت حلقه را تنظیم کنید و درخواستهای محدود شده توسط نرخ (rate-limited) را با تأخیر نمایی (exponential backoff) دوباره امتحان کنید؛ درخواستهای ناموفق هرگز اعتبار شما را مصرف نمیکنند. شما میتوانید کل فرآیند دستهای را با REST API خودکار کنید بدون اینکه به هیچ نصب محلی نیاز باشد - و این دقیقاً هدف این روش است.
محاسبات هزینه قابل پیشبینی است: تصاویر پیشپرداختشده در حجم بالا از قیمت 0.05 یورو به 0.01 یورو به ازای هر تصویر کاهش مییابد، بنابراین هزینه 500 تصویر حدود 20 یورو و 10,000 تصویر حدود 200 یورو خواهد بود - و هر حساب کاربری در هر ماه 10 تبدیل رایگان دیگر نیز اضافه میکند. زمانی که تبدیلها باید تکرارپذیر، در سمت سرور و عاری از وابستگیهای محلی باشند، API را انتخاب کنید. زمانی که تبدیلها محلی و تعاملی هستند، یک هات فولدر را انتخاب کنید. این دو مورد تقریباً تمام کارهای پردازش دستهای دنیای واقعی را پوشش میدهند.
تبدیل دستهای PNG به SVG: مقایسه هر پنج روش
ورودیهای یکسان، با پنج توافق کاملاً متفاوت. هزینه و حریم خصوصی موارد ساختاری هستند نه تبلیغاتی؛ سرعت پردازش (توان عملیاتی) یک اپراتور (یا یک سرور معمولی) بر روی یک سختافزار واقعبینانه را فرض میکند؛ و "رنگ" به معنای خروجی وکتور چندرنگ واقعی است، نه یک شبح سیاه رنگ.
| روش | هزینه | فایل/روز (واقعبینانه) | رنگ | کنترل کیفیت | حریم خصوصی | مهارت مورد نیاز |
|---|---|---|---|---|---|---|
| مبدلهای آنلاین | رایگان | 50-500 (دستی) | بستگی به ابزار دارد | فقط تنظیمات از پیشفرض | متغیر - شرایط را بررسی کنید | هیچ |
| هات فولدر Pro | 39 یورو یکبار مصرف | هزاران (CPU محلی) | بله | یک پروفایل، تمام تنظیمات | 100% محلی | هیچ |
| دسکتاپ رایگان / اینکسکیپ | رایگان | 20-100 (یکی یکی) | بله (فایلهای تکی) | کامل، به ازای هر فایل | 100% محلی | مبتدی |
| اسکریپتها (CLI) | رایگان | هزاران+ (CPU محلی) | Potrace خیر - VTracer بله | کامل (پرچمهای خط فرمان) | محلی | خط فرمان |
| حلقه API | 10 تا رایگان/ماه، سپس €0.01-0.05/تصویر | دهها هزار (60 درخواست/دقیقه) | بله | پارامترهای موتور در هر فراخوانی | فایلها آپلود میشوند | توسعهدهنده |
اگر بیش از یک بار در ماه تبدیل دستهای انجام میدهید، روشهای 2 و 5 در همان بعدازظهر روز اول هزینه خود را برمیگردانند. برای هر کاری کوچکتر از آن، روش 1 یا 3 چیزی جز کمی از زمان شما هزینهای ندارند.
راهنماهای مرتبط تبدیل فرمت
تبدیل دستهای مرحله اول است. این مقالات بقیه مراحل را پوشش میدهند.
سوالات متداول
آیا میتوانم فایلهای PNG را به صورت دستهای و رایگان به SVG تبدیل کنم؟
بله، به دو روش. اسکریپتهای خط فرمان (Potrace، ImageMagick، VTracer) بدون محدودیت فایل رایگان هستند، و برنامه دسکتاپ رایگان به همراه اینکسکیپ نیز رایگان هستند اما در هر بار فقط یک فایل را تبدیل میکنند. ابزارهای آنلاینی نیز وجود دارند که چند فایل را به صورت رایگان میپذیرند - فقط پیش از ارسال آثار هنری تجاری، تایید کنید که آنها واقعاً فایلها را وکتور میکنند و شرایط حریم خصوصی آنها را بخوانید.
هنگام پردازش دستهای چگونه رنگها را حفظ کنم؟
از یک ردیاب (tracer) رنگی استفاده کنید. Potrace فارغ از اینکه چگونه برای آن اسکریپت بنویسید، کاملاً سیاهوسفید است؛ VTracer، PixelToPath Pro و PixelToPath API همگی از یک موتور رنگی استفاده میکنند که هر ناحیه رنگی را به عنوان شکل وکتوری مستقل خود بازسازی میکند. اسکریپت حلقه را با vtracer بنویسید، یا اگر ترجیح میدهید خودتان از اسکریپت نگهداری نکنید، از نسخه Pro یا API استفاده کنید.
آیا میتوانم یک فایل ZIP حاوی PNGها را آپلود کنم و یک فایل ZIP حاوی SVG تحویل بگیرم؟
برخی از ابزارهای آنلاین (مانند Pixelied) آپلودهای حجیم را میپذیرند و یک فایل ZIP برمیگردانند. حالتهای دستهای دسکتاپ و اسکریپتها نتایج را در یک پوشه خروجی مینویسند که میتوانید آن را در یک مرحله به فرمت ZIP درآورید. API در هر فراخوانی یک فایل SVG برمیگرداند، بنابراین وظیفه آرشیو کردن بر عهده شماست - که البته معمولاً همان چیزی است که یک پایپلاین بیلد (build pipeline) به آن نیاز دارد.
چرا دسته فایلهای تبدیلشده من به شکل مستطیلهای سیاه درآمدهاند؟
این همان دام تعبیهسازی (embedding trap) است: ابزار به جای ردیابی فایل PNG، هر کدام را درون یک پوشش SVG بستهبندی کرده است و آنچه شما میبینید یک تصویر پیکسلی تعبیهشده است که در نمایش (رندر) با شکست مواجه میشود. یک فایل خروجی را در ویرایشگر متن باز کنید - وجود یک تگ base64 <image> به تنهایی این موضوع را تایید میکند. پردازش دستهای را دوباره با ابزاری اجرا کنید که عناصر <path> واقعی را در خروجی تولید میکند.
من 50,000 فایل دارم. واقعاً چه چیزی برای این تعداد جواب میدهد؟
یک هات فولدر (hot folder) یا API - هر روش دیگری مدتها قبل از رسیدن به این تعداد با محدودیت مواجه میشود. با سرعت 60 درخواست در دقیقه، API تعداد 50,000 تصویر را در حدود 14 ساعت به صورت زمان واقعی (real-time) با حدود 200 یورو اعتبار پیشپرداختشده به اتمام میرساند. یک هات فولدر محلی همین کار را به صورت آفلاین انجام میدهد و سرعت پردازش آن توسط CPU شما تعیین میشود. هر دو روش تنظیمات را در تمام طول فرآیند اجرا کاملاً یکسان نگه میدارند.
آمادهاید تا فایلهای PNG انباشتهشده خود را مرتب کنید؟
تبدیل یک فایل منفرد با ابزار آنلاین رایگان، راهاندازی یک هات فولدر با نسخه Pro، یا استفاده از یک حلقه API - هر مسیری به مسیرهای وکتور تمیز و واقعی ختم میشود.
حمایت از توسعه متنباز
استفاده از PixelToPath رایگان است. اگر این ابزار به صرفهجویی در وقت شما کمک کرده است، لطفاً مرا به یک قهوه مهمان کنید.
❤️ حمایت مالی از طریق PayPal