طريقة تحويل ملف SVG إلى صورة PNG
ملفات SVG رسومات متجهة تُبنى بمعادلات رياضية لا بشبكة بكسل، وبعض الأنظمة والمنصات لا تقبلها مباشرة عند الرفع. تحويل الملف إلى صورة PNG نقطية بدقة تختارها يحل هذا التوافق، مع بقاء الرسم واضحًا وحادًا عند العرض العادي على أي جهاز.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
الفرق بين الرسم المتجه والصورة النقطية
ملف SVG يصف الشكل بمعادلات رياضية، فيبقى حادًا وواضحًا مهما كبّرته، بينما صورة PNG شبكة بكسل ثابتة تفقد وضوحها إن كُبِّرت فوق دقتها الأصلية. حين تحوّل SVG إلى PNG تختار دقة الإخراج مسبقًا، فتحصل على صورة حادة عند هذا المقاس تحديدًا، لكنها تفقد ميزة التكبير اللانهائي التي يتمتع بها الملف المتجه الأصلي، فاختيار الدقة الصحيحة منذ البداية أمر مهم.
اختيار الدقة المناسبة قبل التحويل
حدد دقة الإخراج بالبكسل حسب مكان استخدام الصورة الناتجة: أيقونة صغيرة تكفيها دقة منخفضة، بينما شعار سيُطبَع على لافتة كبيرة يحتاج دقة عالية جدًا لتجنب الظهور ضبابيًا. لأن PNG النهائي بدقة ثابتة، الأفضل اختيار أعلى دقة معقولة للاستخدام المقصود منذ البداية بدل تكبير الملف الناتج لاحقًا وفقدان الوضوح تمامًا في النتيجة النهائية المُستخدَمة على الموقع أو في التصميم.
الشفافية تُحفَظ تلقائيًا
إذا كان ملف SVG الأصلي بخلفية شفافة، تُحفَظ الشفافية في ملف PNG الناتج تلقائيًا دون إعداد إضافي، وهذا مفيد جدًا لشعارات الشركات التي تحتاج وضعها على خلفيات ملونة مختلفة دون إطار أبيض محيط بها يفسد التصميم النهائي المطلوب، خصوصًا في المطبوعات والبانرات الإعلانية المختلفة الألوان، حيث يظهر أي إطار أبيض زائد بوضوح ويفسد المظهر النهائي المقصود، ويجعل الشعار يبدو مقحمًا على التصميم بدل الاندماج معه بسلاسة.
لماذا يحتاج بعض الأنظمة PNG بدل SVG
رغم أن SVG صيغة قوية ومرنة، بعض أنظمة إدارة المحتوى القديمة، وبعض منصات الإعلانات، وبرامج تحرير المستندات النصية، لا تقبل رفع ملفات SVG مباشرة لأسباب تتعلق بالأمان أو التوافق، وتشترط صورة نقطية عادية مثل PNG بدلًا منها قبل قبول الملف نهائيًا ضمن النظام المعني ذاته، مهما كانت جودة الرسم المتجه الأصلي أو دقته الفنية، فالتحويل هنا خطوة إلزامية لا اختيارية.
حالات الاستخدام
شعار شركة لبرنامج تحرير مستندات
يملك خالد العتيبي شعار شركته بصيغة SVG من المصمم، لكن برنامج تحرير المستندات الذي يستخدمه لا يقبل رفعها مباشرة. يحوّلها إلى PNG بدقة عالية فتُدرَج في المستند بوضوح كامل.
أيقونات موقع بصيغة PNG لنظام قديم
يستخدم نظام إدارة المحتوى الذي تعتمده شركة الخليج الرقمية أيقونات SVG، لكن قالب موقع أقدم يقبل PNG فقط. تحويل مجموعة الأيقونات إلى PNG بدقة صغيرة مناسبة يحل التعارض.
رسم توضيحي للطباعة بدقة عالية
يحتاج عبدالله المنصوري طباعة رسم توضيحي مصمم أصلًا بصيغة SVG على مطبوعة تجارية كبيرة. يحوّله إلى PNG بدقة عالية جدًا مخصصة للطباعة قبل إرساله لدار الطباعة.
الأسئلة الشائعة
هل تفقد الصورة وضوحها بعد التحويل من SVG إلى PNG؟
عند العرض بالدقة المختارة تبقى واضحة تمامًا، لكن تكبيرها لاحقًا فوق هذه الدقة يفقدها الحدة، لأن PNG صورة بكسل ثابتة على عكس SVG المتجه.
كيف أختار الدقة المناسبة للتحويل؟
اختر الدقة حسب الاستخدام النهائي؛ للعرض على الشاشة تكفي دقة معتدلة، وللطباعة على مطبوعات كبيرة تحتاج دقة أعلى بكثير لتجنب الظهور ضبابيًا.
هل تُحفَظ الخلفية الشفافة عند التحويل؟
نعم، إن كانت خلفية ملف SVG الأصلي شفافة، تُحفَظ الشفافية تلقائيًا في ملف PNG الناتج دون إعداد إضافي من جانبك.
كم تكلفة تحويل ملف SVG واحد؟
السعر $0.040 للطلب الواحد و$0.001 للصورة، وهو سعر مختلف عن باقي أدوات الصور لأن التحويل يعتمد محرك عرض متصفح كامل خلف الكواليس.
لماذا سعر هذه الأداة مختلف عن أدوات الصور الأخرى؟
تحويل SVG إلى PNG يحتاج تشغيل محرك عرض متصفح لرسم الملف المتجه بدقة، وهذا أثقل من عمليات تحويل الصور النقطية العادية، لذا سعر الطلب أعلى قليلًا وسعر الصورة نفسها أقل.
هل يعمل التحويل مع ملفات SVG المعقدة والمتحركة؟
يتعامل التحويل مع الرسم الثابت في الملف؛ أي تأثيرات حركة داخل SVG لا تظهر في PNG الناتج لأن الصورة النقطية بطبيعتها ثابتة لا متحركة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/svg-to-png \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/svg-to-png", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/svg-to-png",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/svg-to-png", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/svg-to-png", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"image": "https://ejemplo.com/imagen.jpg"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.svg_to_png",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 15 |
max_megapixels | 12 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |