طريقة الاستخدام
- الصق سلسلة Base64 أو عنوان data:image/png;base64 كاملًا.
- راجع المعاينة. تظهر المناطق الشفافة فوق نمط يشبه رقعة الشطرنج.
- اترك «تنزيل بصيغة» على PNG. وإذا كانت البيانات بصيغة JPEG أو WebP أو أي صيغة أخرى، فستُحوَّل إلى PNG داخل متصفحك.
- نزّل ملف .png الناتج.
من أين تأتي صور PNG بترميز Base64
PNG هي الصيغة التي يُرجَّح أن تصادفها بترميز Base64 أكثر من غيرها. فاستدعاء canvas.toDataURL() دون وسائط يعيد data URI بصيغة PNG. وتعيد أدوات أتمتة المتصفح لقطات الشاشة بصيغة PNG مرمّزة بـ Base64، مثل page.screenshot({ encoding: 'base64' }) في Puppeteer أو get_screenshot_as_base64() في Selenium. كما تعيد أدوات رسم المخططات ومولّدات رموز QR وواجهات API لتوليد الصور الصورةَ غالبًا في حقل Base64 داخل JSON.
من السهل التعرّف على سلسلة PNG: فهي تبدأ دائمًا بـ iVBORw0KGgo، وهو ترميز توقيع PNG المكوّن من 8 بايتات والذي يبدأ بـ 89 50 4E 47. ويليه AAAANSUhEUg، وهو بداية مقطع IHDR الذي يخزّن العرض والارتفاع.
تحتاج السلاسل المنسوخة من JSON إلى فحص سريع أولًا. فالدالة json_encode في PHP، على سبيل المثال، تضيف افتراضيًا رمز هروب قبل الشرطات المائلة، لذا قد تصل صورة PNG من واجهة API مكتوبة بلغة PHP وفيها تسلسلات \/. استبدلها بـ / واحذف علامات الاقتباس المحيطة قبل اللصق.
لماذا تحفظ الصورة بصيغة PNG
تضغط PNG الصورة دون فقدان أي تفاصيل وتخزّن قناة ألفا كاملة، فتبقى الظلال الناعمة والحواف المنعّمة سليمة. وهذا يجعلها الخيار الطبيعي للقطات الشاشة وعناصر الواجهة والمخططات وكل ما يحتوي على نص. أما الصور الفوتوغرافية، فتُنتج لها JPG أو WebP ملفات أصغر بكثير.
تحويل JPEG أو WebP إلى PNG يحتفظ بما يظهر على الشاشة تمامًا، لكنه لا يستطيع استعادة التفاصيل التي أزالها الضغط مع الفقدان من قبل، وغالبًا ما يكون ملف PNG أكبر من الملف المصدر.
حفظ صورة PNG بترميز Base64 برمجيًا
# Python
import base64
with open('screenshot.png', 'wb') as f:
f.write(base64.b64decode(b64_string))
// المتصفح: تحويل data URI إلى Blob دون فك ترميز يدوي
const blob = await (await fetch(dataUri)).blob();
const url = URL.createObjectURL(blob);
هل تحتاج إلى الاتجاه المعاكس؟ تُرمّز أداة تحويل PNG إلى Base64 الملف إلى سلسلة أو data URI.
الأسئلة الشائعة
كيف أعرف أن سلسلة Base64 هي صورة PNG؟
iVBORw0KGgo. كما تقرأ الأداة بايتات التوقيع مباشرة، لذا تعرض الصيغة الحقيقية حتى لو ذكر data URI صيغة أخرى.هل يقلّل التحويل إلى PNG من الجودة؟
لا. صيغة PNG بلا فقدان، لذا تُخزَّن وحدات البكسل تمامًا كما فكّ المتصفح ترميزها. والفقدان الوحيد الممكن هو ما حدث مسبقًا في الملف المصدر.
هل تُحفظ الشفافية؟
نعم. تحتفظ مخرجات PNG بقناة ألفا كاملة. أما مخرجات JPEG فتملأ المناطق الشفافة باللون الأبيض، ومخرجات GIF تجعل كل بكسل إما شفافًا تمامًا أو معتمًا تمامًا.
يظهر data URI الخاص بصورة PNG كصورة معطوبة. ما المشكلة؟
\/ قبل اللصق.