حوّل صورة إلى نص Base64
تحوّل هذه الأداة صورة إلى نص Base64 يمكن لصقه مباشرة داخل CSS أو HTML أو بريد إلكتروني، بدل رفع الملف إلى خادم واستدعائه برابط منفصل. التحويل يجري داخل المتصفح، مجانًا وبلا حد على عدد المرات، وهو خيار مفيد لأي واجهة أو رسالة تحتاج صورة مضمَّنة مباشرة في الكود.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
متى يفيد ترميز الصورة نصًا
بعض المواقع الصغيرة أو رسائل البريد الإلكتروني لا تحتمل طلب ملف صورة منفصل من خادم خارجي، فيُدمَج الترميز النصي للصورة مباشرة داخل الكود بدل رابط خارجي. أيقونة صغيرة أو شعار داخل قالب بريد إلكتروني مثال شائع لهذا الاستخدام، حيث يضمن الترميز النصي ظهور الصورة حتى حين يمنع برنامج البريد تحميل الصور الخارجية تلقائيًا. الفكرة نفسها تفيد أيضًا في تطبيقات لا تتصل بالإنترنت باستمرار، حيث تُحفظ الصورة كنص ضمن الملف نفسه بدل الاعتماد على رابط خارجي قد ينقطع.
كيف يعمل الترميز داخل المتصفح
تختار ملف الصورة، وتحوّله الأداة فورًا إلى سلسلة نصية طويلة تبدأ عادة بمقطع data:image، جاهزة للصق داخل خاصية CSS أو وسم HTML أو حقل نصي في نظامك. المعالجة تجري بالكامل على جهازك، والصورة الأصلية لا تُرسَل إلى أي خادم في أي خطوة من العملية، وهو ما يجعل الأداة مناسبة حتى مع صور تحمل بيانات حساسة. النص الناتج يظل صالحًا للاستخدام إلى أن تُغيَّر الصورة نفسها، إذ لا يحتاج تحديثًا دوريًا كما يحتاج رابط خارجي منفصل.
حجم الناتج وسعر الاستخدام عبر API
النص الناتج أكبر من حجم الملف الأصلي بنحو الثلث، وهو أمر متوقع في ترميز Base64 ولا يشير إلى خلل. الاستخدام من هذه الصفحة مجاني تمامًا؛ من يحتاج التحويل ضمن مسار آلي على الخادم يستدعي الوظيفة نفسها عبر الـAPI بسعر $0.002 للطلب. هذا الفرق في الحجم يستحق مراعاته فقط عند ترميز صور كبيرة نسبيًا؛ للأيقونات والشعارات الصغيرة يبقى أثره ضئيلًا عمليًا على أداء الصفحة.
حالات الاستخدام
قالب بريد إلكتروني بشعار ثابت
تُضمّن مؤسسة النخيل للمقاولات شعارها كنص Base64 داخل قوالب البريد الإلكتروني، فيظهر الشعار حتى حين تمنع برامج البريد تحميل الصور الخارجية.
موقع صغير بلا خادم صور منفصل
يبني مطوّر مستقل في مسقط موقعًا بسيطًا بلا خادم صور مخصّص، ويضمّن أيقونات الواجهة كنص داخل ملف CSS واحد.
نموذج داخلي يحفظ صورة التوقيع كنص
تحفظ إدارة موارد بشرية توقيع كل موظف كنص Base64 داخل قاعدة بيانات النظام الداخلي، بدل التعامل مع ملفات صور منفصلة لكل سجلّ.
الأسئلة الشائعة
هل تُرسَل صورتي إلى خادم أثناء التحويل؟
لا، الترميز يجري بالكامل داخل متصفحك؛ الصورة لا تغادر جهازك في أي لحظة.
هل الاستخدام مجاني بلا حدود؟
نعم، من هذه الصفحة الاستخدام مجاني ودون حد على عدد الصور، مهما تكرر خلال اليوم.
لماذا حجم النص أكبر من حجم الصورة الأصلية؟
ترميز Base64 يزيد الحجم بنحو الثلث دائمًا، وهذا سلوك طبيعي للترميز لا خلل في الأداة.
هل يستلزم الاستخدام تسجيل حساب؟
لا، لا توجد حسابات حاليًا؛ الأداة داخل المتصفح تعمل دون تسجيل دخول.
ما تكلفة التحويل عبر API؟
$0.002 لكل طلب عند التنفيذ من جهة الخادم، وهذا يفيد فقط عند دمج التحويل آليًا داخل نظامك.
ما أقصى حجم للصورة يمكن ترميزها؟
حتى 15 ميجابايت و12 ميجابكسل، وهو حد يكفي عمليًا أي صورة من هاتف أو كاميرا حديثة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/to-base64 \
-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/to-base64", {
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/to-base64",
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/to-base64", 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/to-base64", 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.to_base64",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |