طريقة الاستخدام
- أفلت ملف .jpg أو .jpeg في منطقة الإفلات، أو انقر لاختيار واحد، أو الصق صورة.
- للاحتفاظ بالملف كما هو تمامًا، اترك «التحويل إلى» على «الصيغة الأصلية». ولتصغيره، اختر JPEG أو WebP وخفّض «الجودة».
- حدّد «أقصى عرض» إذا كانت الصورة أكبر من الحجم الذي ستُعرض به.
- انسخ المخرجات التي تحتاجها، مثل وسم img لصفحة ويب أو Base64 الخام لواجهة API، أو نزّلها كملف.
JPEG باختصار
JPEG هي الصيغة القياسية للصور الفوتوغرافية. تستخدم ضغطًا مع فقدان يتخلّص من التفاصيل التي بالكاد تلاحظها العين، ولا تدعم الشفافية. وتنتهي ملفاتها بالامتداد .jpg أو .jpeg أو أحيانًا .jfif، لكن نوع MIME هو دائمًا image/jpeg؛ أما image/jpg فليس نوعًا مسجّلًا، رغم أن كثيرًا من المتصفحات تتسامح معه. ويبدأ data URI لصورة JPEG بـ data:image/jpeg;base64,/9j/، وهو الشكل المرمّز لعلامة بداية الصورة.
تصغير الصورة الفوتوغرافية قبل الترميز
الصور الفوتوغرافية هي أكثر ما يتضرر من Base64: فملف JPEG بحجم 200 كيلوبايت يصبح نحو 270 كيلوبايت من النص. وهناك إعدادان يُحدثان الفرق الأكبر:
- أقصى عرض. تقليص العرض إلى النصف يخفّض عدد وحدات البكسل إلى الربع. ونادرًا ما تحتاج إلى صورة هاتف بعرض 4000 بكسل بهذا الحجم.
- الجودة. القيم بين 70 و80% تبدو عادةً مطابقة للأصل على الشاشة وتكون أصغر بكثير. أما القيم المنخفضة جدًا فتُظهر تشوهات على شكل مربعات.
وغالبًا ما يكون التحويل إلى WebP بجودة مماثلة أصغر حجمًا. راقب الحجم بعد الترميز المعروض لكل إعداد، واحتفظ بأصغر نتيجة لا تزال تبدو جيدة.
بيانات EXIF الوصفية
تحمل الصور الملتقطة بالكاميرات والهواتف بيانات EXIF الوصفية: طراز الكاميرا والتاريخ والوقت، وأحيانًا إحداثيات GPS. ومن دون تحويل، تتضمن مخرجات Base64 البايتات الأصلية بما فيها البيانات الوصفية، ويستطيع أي شخص يفك ترميزها قراءتها. وهذا ما تريده عندما يكون الملف الأصلي بعينه مهمًا، كأن تتحقق واجهة API من قيمة التجزئة أو تقرأ تاريخ الالتقاط.
أما التحويل فيعيد ترميز وحدات البكسل في المتصفح، ولا تُنقل بيانات EXIF. فتصبح المخرجات أصغر ولا تكشف بعد ذلك مكان التقاط الصورة.
متى يستحق data URI بصيغة JPEG الاستخدام
من الاستخدامات المناسبة العناصر النائبة الصغيرة المموّهة (صورة بعرض 20 إلى 40 بكسل تُضمَّن ريثما تُحمَّل الصورة الكاملة تحميلًا كسولًا)، والصور المصغّرة في استجابات JSON، وتصدير HTML في ملف واحد. أما الصور الرئيسية الكبيرة ومعارض الصور فمكانها ملفات منفصلة يستطيع المتصفح تخزينها مؤقتًا.
# Python
import base64
with open('photo.jpg', 'rb') as f:
uri = 'data:image/jpeg;base64,' + base64.b64encode(f.read()).decode('ascii')
الأسئلة الشائعة
هل JPG هو نفسه JPEG؟
نعم. يعود الامتداد الأقصر .jpg إلى أنظمة كانت لا تسمح إلا بثلاثة أحرف للامتداد. وكلاهما الصيغة نفسها بنوع MIME هو image/jpeg.
هل يخفّض ترميز Base64 جودة JPEG؟
لا. Base64 تمثيل بلا فقدان لبايتات الملف. ولا تتغير الجودة إلا إذا اخترت تحويلًا، إذ يُعاد ترميز الصورة بالجودة التي تحددها.
هل يمكن أن يكون لـ data URI بصيغة JPEG خلفية شفافة؟
هل تحتوي سلسلة Base64 على موقع التقاط صورتي؟
قد تحتوي عليه. فإذا كانت صورة JPEG الأصلية تتضمن بيانات GPS في بيانات EXIF الوصفية ورمّزتها دون تغيير، فسيكون الموقع داخل السلسلة. أما تحويل الصورة فيزيل بيانات EXIF الوصفية.