JFIF اختصار لـ JPEG File Interchange Format (تنسيق تبادل ملفات JPEG)، وJPEG اختصار لـ Joint Photographic Experts Group. JFIF هو تنسيق الملف الذي يخزن بيانات صور JPEG حتى تتمكن البرامج وأجهزة الكمبيوتر المختلفة من فتحها.
إصدار JFIF هو حقل بيانات وصفية داخل ملف JPEG. يخبرك بأي إصدار من مواصفة JFIF يتبعه الملف، على سبيل المثال 1.01 أو 1.02. تجد هذا الحقل في ملفات JPG، لأن JFIF تنسيق لصور JPEG فقط.
ما الذي يضيفه JFIF إلى صورة JPEG
يعرّف معيار JPEG كيفية ضغط بيانات الصورة. ملف JFIF هو ملف JPEG عادي مع كتلة بيانات إضافية واحدة تسمى مقطع APP0. تأتي هذه الكتلة مباشرة بعد العلامة التي تبدأ الصورة.
تبدأ البيانات في مقطع APP0 بالنص JFIF. يخزن هذا المقطع معلومات لا تحتويها بيانات الصورة المضغوطة:
- إصدار JFIF
- الكثافة البكسلية الأفقية والعمودية، مع وحدة دقة بالبوصة أو السنتيمتر أو بدون وحدة
- نسبة أبعاد البكسل، التي يحسبها البرنامج من قيمتي الكثافة
- معاينة صغيرة اختيارية للصورة تسمى صورة مصغرة
يحدد JFIF أيضًا نموذج الألوان. تحتوي صورة JFIF على قناة واحدة للسطوع فقط، أو 3 قنوات في فضاء الألوان YCbCr.
ما هي الملفات التي تحمله
نوع MIME image/jpeg مُعرّف لصور JPEG بتنسيق JFIF. امتدادات الملفات .jpg و.jpeg و.jpe و.jif و.jfif كلها تابعة لهذا التنسيق. لذلك فإن الملف الذي ينتهي اسمه بـ .jfif يحتوي على نفس نوع الصورة مثل ملف .jpg.
عادةً ما تحفظ الكاميرات الرقمية صور JPEG بتنسيق Exif بدلًا من ذلك. يخزن Exif بياناته الوصفية في الأساس في مقطع APP1، ويجب أن يأتي هذا المقطع أيضًا مباشرة بعد بداية الصورة. وبما أن كلا المقطعين يجب أن يكونا أولًا، لا يمكن للملف اتباع JFIF وExif في الوقت نفسه.
ما زالت بعض البرامج تكتب مقطع JFIF أمام مقطع Exif. في مثل هذا الملف ترى كلًا من إصدار JFIF وإصدار Exif.
كيف تبدو القيم
يُخزَّن إصدار JFIF في بايتين. يحتوي البايت الأول على رقم الإصدار الرئيسي، ويحتوي البايت الثاني على رقم الإصدار الفرعي. يُخزَّن الإصدار 1.02 في البايتين 01 و02.
يعرض ExifTool الحقل باسم JFIFVersion. يطبع رقم الإصدار الرئيسي، ثم نقطة، ثم رقمًا فرعيًا من رقمين. تسرد سجلات التنسيقات 3 إصدارات من JFIF:
1.00: إصدار مبكر من المواصفة1.01: الإصدار السابق للإصدار 1.021.02: الإصدار بتاريخ 1 سبتمبر 1992
من أين تأتي القيمة
البرنامج الذي يحفظ ملف JPEG يكتب مقطع APP0 ورقم الإصدار داخله. نشرت ITU تنسيق JFIF كتوصية T.871 في عام 2011، وتنشر ISO وIEC النص نفسه كمعيار ISO\/IEC 10918-5. يستند هذا المعيار إلى الإصدار 1.02، والملفات التي تتبعه يجب أن تخزن القيمة 1.02.
البرامج المبنية على مكتبة libjpeg تكتب القيمة 1.01 افتراضيًا. توضح وثائقها أنه يجب تعيين 1.02 عندما يضيف البرنامج مقطع امتداد من الإصدار 1.02. لذلك يمكن أن يعرض ملف محفوظ اليوم 1.01 أو 1.02.
لماذا هذا مهم لملفك
يخبر الإصدار البرنامج بما إذا كان يمكنه قراءة بيانات JFIF. تنص المواصفة على أنه يمكن عادةً فك ترميز ملف عندما يطابق الإصدار الرئيسي للملف الإصدارَ الرئيسي الذي يدعمه البرنامج.
يوضح الإصدار أيضًا أي الصور المصغرة يمكن أن يحتويها الملف. يُسمح بمقطع امتداد يسمى JFXX فقط في الإصدار 1.02 والإصدارات الأحدث. يمكن لمقطع JFXX أن يحتوي على صورة مصغرة مضغوطة بتنسيق JPEG أو صورة مصغرة غير مضغوطة.
ملف JPEG من دون إصدار JFIF لا يحتوي على مقطع JFIF. وهذا طبيعي للصور التي تحفظها الكاميرا بتنسيق Exif.