صورة إلى عنوان بيانات

حوّل صورة صغيرة إلى عنوان بيانات بترميز Base64، مع صورتَي CSS وHTML جاهزتين وتحذير حجم صادق.

تتم المعالجة على جهازك — بلا رفع

termiva datauri --encode

يقرأ متصفّحك الملف ويرمّزه هنا — ولا شيء يُرفع، وذلك يهمّ لأن الصور التي يضمّنها الناس تكون عادةً شعارات وأصولًا غير مُصدَرة.

الملف لا شيءمرمَّز الزيادة لا شيء مرفوع

كيف تحوّل صورة إلى عنوان بيانات

  1. اختر صورة.
  2. افحص تحذير الحجم.
  3. انسخ صورة CSS أو HTML.

كيف يعمل

عنوان البيانات يضع الملف نفسه في العنوان. فبدل url("logo.png") المشيرة إلى ملف يجب على المتصفّح جلبه، تُكتب البايتات مضمَّنةً بترميز Base64 ويملكها المتصفّح أصلًا. طلب واحد أقلّ، ولا يمكن للصورة أن تصل متأخّرة ولا أن تعطي 404.

وBase64 يكلّف نحو الثلث. فثلاثة بايتات تصير أربعة محارف، فأيقونة بحجم 9 كيلوبايت تصير نحو 12 كيلوبايت من النص. وتلك هي المقايضة: تنفق بايتات لتوفّر رحلة ذهاب وإياب.

والمقايضة لا تستحقّ إلا ما دام الملف صغيرًا. فتحت نحو عشرة كيلوبايتات، يكلّف الطلب الذي تتفاداه — من DNS واتّصال وترويسات وزمن استجابة — أكثر من البايتات الزائدة. وفوقها ينعكس الحساب ويستمرّ في السوء.

وثمّة كلفة ثانية يسهل إغفالها. فالصورة المضمَّنة جزء من ملف CSS أو HTML عندك. ولا يمكن تخبئتها على حدة، فتغيير سطر واحد من CSS يجعل كل زائر يعيد تنزيل الصورة معه. ولا يمكن تحميلها كسولًا، فتزاحم المحتوى الذي ينتظره الناس. وهي تعطّل العرض إن كانت في ورقة أنماط في الترويسة.

مثال عملي

وما يصلح له هذا فعلًا. أيقونة SVG بحجم 2 كيلوبايت مستعملة في background-image. ونسيج صغير يتكرّر. وعنصر نائب يجب أن يظهر فورًا. وشعار داخل بريد HTML، حيث تُحجب الصور الخارجية افتراضيًا والمضمَّنة هي الشيء الوحيد الذي سيراه المستلم.

وما لا يصلح له. الصور الفوتوغرافية، والصور الرئيسية، وأي شيء فوق بضعة كيلوبايتات، وأي شيء مستعمل في أكثر من صفحتين. ويظهر التحذير فوق 10 كيلوبايتات ويستحق التصديق — فصورة ترويسة مضمَّنة بحجم 200 كيلوبايت هي صفحة تُعرض متأخّرة على نحو ملحوظ عمّا تحتاج.

ولـSVG خيار أفضل من Base64. رمّز الترميز بالنسبة المئوية بدلًا من ذلك والصقه في url() مباشرةً. فيبقى مقروءًا للإنسان، ويُضغط أفضل بكثير من Base64 (وهو شبه غير قابل للضغط، لكونه كثيفًا أصلًا)، وهو أصغر عادةً بنسبة 20% إلى 30%. فـBase64 هو الجواب الصحيح للصيغ الثنائية لا لـXML.

والمعاينة معروضة من عنوان البيانات نفسه لا من الملف الذي اخترته. فإن عُرضت، عملت السلسلة. وذلك هو الاختبار الوحيد الذي يستحق التشغيل، وهو يلتقط القطع الذي يحدث حين يُنسخ عنوان طويل جدًّا من طرفية.

وإن كانت الصورة أكبر ممّا تحتاج، فإن ضاغط الصور ومغيّر المقاس هما الخطوة قبل هذه — فتضمين ملف زائد الحجم لا يزيد الكلفة إلا سوءًا.

أسئلة

كيف أضمّن صورة مباشرةً في CSS؟

عنوان البيانات يضع البايتات في ورقة الأنماط، فلا يحتاج المتصفّح طلبًا ثانيًا. ويستحق ذلك تحت نحو عشرة كيلوبايتات وهو خطأ فوقها.

متى أضمّن صورة؟

تحت نحو عشرة كيلوبايتات، مستعملةً في صفحة تحتاجها فورًا — الأيقونات الصغيرة والأنسجة والعناصر النائبة وصور بريد HTML. وفوق ذلك يكون الطلب العادي أسرع.

لماذا عنوان البيانات أكبر من ملفّي؟

Base64 يحوّل كل ثلاثة بايتات إلى أربعة محارف، فتوقّع زيادة نحو 33%. وذلك متأصّل في تمثيل بيانات ثنائية نصًّا.

هل يجعل التضمين صفحتي أسرع؟

لصورة صغيرة على مسار حرج، نعم — طلب واحد أقلّ. أما لأي شيء أكبر فيجعلها أبطأ، لأن البايتات في مسار العرض ولا يمكن تخبئتها على حدة.

ما حدّ الحجم؟

المتصفّحات تقبل عناوين بيانات ضخمة جدًّا، فلا شيء يمنعك تقنيًا. والحدّ العملي هو حين تتجاوز كلفة البايتات الطلبَ الذي وفّرته — نحو عشرة كيلوبايتات.

وماذا عن SVG؟

رمّز الترميز بالنسبة المئوية وضعه مباشرةً في url() بدلًا من ذلك. فيبقى مقروءًا، ويُضغط أفضل بكثير، وهو أصغر عادةً من صورة Base64.

هل تعمل عناوين البيانات في البريد؟

في بعض العملاء. فجيميل ينزعها؛ وApple Mail يسمح بها عمومًا. وللبريد، تبقى الصورة المستضافة بنصّ بديل جيّد الافتراضَ الأسلم.

هل أفكّ عنوان بيانات رجوعًا إلى ملف؟

ليس في هذه الصفحة. فلصق واحد في شريط العنوان يعرض الصورة، ويستطيع المتصفّح حفظها من هناك.

هل تُرفع صورتي؟

لا. يقرؤها متصفّحك ويرمّزها، وذلك يهمّ لأن الصور التي يضمّنها الناس تكون عادةً شعارات وأصولًا غير مُصدَرة.

هل عنوان البيانات هو نفسه تحويل صورة إلى Base64؟

تقريبًا. فتحويل الصورة إلى Base64 يعطيك البايتات المرمَّزة؛ وعنوان البيانات هو تلك البايتات مع بادئة تخبر المتصفّح ما هي. وPNG إلى Base64 وJPG إلى Base64 كلاهما يعمل هنا، وما تحصل عليه هو العنوان الكامل — جاهزًا للّصق في src أو في url() بـCSS دون تركيب شيء يدويًا.

أي صيغ يمكن أن تصير عنوان بيانات؟

أي صورة يستطيع متصفّحك قراءتها. فمن JPG إلى عنوان بيانات، ومن JPEG، ومن PNG، وWebP كلها تعمل، وكذلك SVG وGIF. والصور الفوتوغرافية والرسوم سواء — وإن كان الترميز يضيف نحو الثلث إلى الحجم، فهذا يستحق الفعل للأيقونات لا للصور الفوتوغرافية.

هل صورة إلى عنوان بيانات مجاني على الإنترنت؟

نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.

للقراءة