محوّل GIF إلى Base64

رمّز صور GIF الثابتة أو المتحركة إلى Base64. يُرمَّز الملف الأصلي بايتًا ببايت، لذا تبقى جميع الإطارات وتوقيتها وإعداد التكرار كما هي.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. أفلت صورة GIF في منطقة الإفلات، أو انقر لاختيار واحدة، أو الصق صورة.
  2. أبقِ «التحويل إلى» على «الصيغة الأصلية» واترك «أقصى عرض» على «الحجم الأصلي» للحفاظ على الحركة.
  3. تحقّق من الحجم الأصلي والحجم بعد الترميز؛ فصور GIF المتحركة يكبر حجمها بسرعة.
  4. انسخ مخرجات وسم img أو CSS background-image، أو استخدم data URI أو Base64 الخام أو نسخة Markdown.

نبذة عن صيغة GIF

يعود تاريخ GIF (Graphics Interchange Format، ونوع MIME الخاص بها image/gif) إلى عام 1987. يستخدم كل إطار لوحة ألوان لا تتجاوز 256 لونًا، مضغوطة بلا فقدان بخوارزمية LZW. والشفافية فيها إما كاملة أو معدومة: إذ يمكن تحديد مدخل واحد في لوحة الألوان على أنه شفاف، لكن لا توجد شفافية جزئية. ويمكن أن يحتوي الملف على إطارات كثيرة لكل منها مدة تأخير خاصة، مع عدد مرات للتكرار، ولهذا أصبحت GIF صيغة الرسوم المتحركة القصيرة.

تبدأ سلسلة Base64 لصورة GIF بـ R0lGODlh للإصدار الشائع GIF89a، أو R0lGODdh للإصدار الأقدم GIF87a.

الحفاظ على الحركة

عندما تُبقي على الصيغة الأصلية، ترمّز الأداة بايتات الملف كما هي. لذلك يتحرك data URI تمامًا كما يتحرك الملف، سواء استخدمته في وسم <img> أو كخلفية CSS.

أما التحويل إلى PNG أو JPEG أو WebP، أو تحديد «أقصى عرض»، فيعيد رسم الصورة في المتصفح، ولا يبقى منها إلا الإطار الأول. وهذا مفيد عندما تريد معاينة ثابتة لرسم متحرك، أما للنسخة المتحركة فاترك الخيارين كليهما دون تفعيل.

متى لا يزال data URI بصيغة GIF منطقيًا

  • مؤشرات التحميل الدوّارة الصغيرة وأيقونات الحالة المتحركة في CSS.
  • البكسل الشفاف الكلاسيكي بأبعاد 1x1، المستخدم كقيمة src مؤقتة. لا يشغل إلا بضع عشرات من البايتات، وأقل بكثير من 100 حرف في Base64.
  • الرسوم الخطية البسيطة ذات الألوان القليلة، حيث تكون GIF صغيرة الحجم.

أما الرسوم المتحركة الكبيرة فلا تناسبها. فصورة GIF تعبيرية بحجم 2 ميغابايت تتحول إلى نحو 2.7 ميغابايت من النص لا يمكن تخزينه مؤقتًا بشكل مستقل؛ بينما يكون ملف فيديو مستضاف أو صورة WebP متحركة أخف بكثير.

.loading {
  background: url("data:image/gif;base64,R0lGODlh...") no-repeat center;
}

<img src="data:image/gif;base64,R0lGODlh..." width="32" height="32" alt="Loading">

الأسئلة الشائعة

هل ستبقى صورة GIF متحركة بعد ترميزها بـ Base64؟

نعم، ما دمت تُبقي على الصيغة الأصلية ولا تغيّر الحجم. إذ يخزّن Base64 الملف كاملًا، بما في ذلك جميع الإطارات وإعداد التكرار.

لماذا توقفت صورة GIF عن الحركة بعد التحويل؟

التحويل إلى PNG أو JPEG أو WebP، أو تغيير الحجم، يعيد رسم الصورة انطلاقًا من إطارها الأول. ولا تستطيع الأداة إنشاء ملفات PNG أو WebP متحركة، لذا احتفظ بملف GIF الأصلي للحفاظ على الحركة.

هل يحافظ data URI بصيغة GIF على الشفافية؟
نعم. يحافظ Base64 على مدخل لوحة الألوان الشفاف. لكن GIF لا تدعم الشفافية الجزئية، لذا قد تبدو الحواف الناعمة مسنّنة على خلفية مختلفة. وتتعامل PNG أو WebP مع الحواف الناعمة بشكل أفضل.
كيف أستعيد صورة GIF من سلسلة Base64؟
الصق السلسلة في أداة تحويل Base64 إلى GIF لمعاينتها وتنزيلها كملف .gif.