فایل JFIF چیست؟
JFIF (JPEG File Interchange Format (JFIF)) یک فایل فرمت تصویری است که از پسوند .jfif استفاده می کند. JFIF با کاهش پیچیدگی و حل محدودیتهای آن، بر روی JIF (فرمت تبادل JPEG) ایجاد میکند.
تاریخچه مختصر JFIF
JFIF document development was led by Eric Hamilton and an agreement on the first version was established in late 1991. نسخه 1.02 در 7 سپتامبر 1992 منتشر شد. RFC 2046 مشخص کرد که فرمت JFIF برای انتقال تصاویر JPEG از طریق اینترنت استفاده می شود. JFIF توسط ECMA در سال 2009 منتشر شد و توسط ITU-T در سال 2011 به عنوان توصیه T.871 و توسط ISO/IEC در سال 2013 به عنوان ISO/IEC 10918-5 استاندارد شد.
فرمت فایل JFIF
یک فایل JFIF شامل دنباله ای از نشانگرها است که در قسمت 1 استاندارد JPEG تعریف شده است. هر نشانگر از دو بایت تشکیل شده است (FF به دنبال آن یک بایت که نوع نشانگر را مشخص می کند). نشانگرها می توانند مستقل باشند یا شروع یک بخش نشانگر را نشان دهند.
JFIF به چندین مؤلفه مانند Y، Cb، Cr اجازه می دهد تا وضوح های متفاوتی داشته باشند، اما تراز آنها تعریف نشده است. بر خلاف JPEG، JFIF می تواند اطلاعات وضوح و نسبت تصویر را ارائه دهد. JFIF همچنین مدل رنگ مورد استفاده را تعریف می کند.
ساختار فایل
قسمت | کد | توضیحات |
---|---|---|
SOI | FF D8 | شروع تصویر |
JFIF-APP0 | FF E0 s1 s2 4A 46 49 46 00 … | |
JFXX-APP0 | FF E0 s1 s2 4A 46 58 58 00 … | |
قطعات نشانگر اضافی | ||
SOS | FF DA | شروع اسکن |
داده های تصویر فشرده | ||
EOI | FF D9 | انتهای تصویر |
استاندارد JFIF بخش های زیر را تعریف می کند:
بخش نشانگر JFIF APP0
این یک بخش اجباری حاوی پارامترهای تصویر است. همچنین میتواند شامل یک تصویر کوچک غیرفشرده تعبیهشده باشد.
فیلد | اندازه (بایت) | توضیحات |
---|---|---|
نشانگر APP0 | 2 | FF E0 |
طول | 2 | طول قطعه به استثنای نشانگر APP0 |
شناسه | 5 | JFIF (4A 46 49 46 00) در ASCII با یک بایت تهی خاتمه می یابد |
نسخه JFIF | 2 | نسخه JFIF |
واحد تراکم | 1 | واحد برای فیلدهای تراکم پیکسلی زیر 00 : بدون واحد; نسبت ابعاد پیکسل عرض: ارتفاع برابر است با Ydensity:Xdensity 01: پیکسل در هر اینچ 02 : پیکسل در سانتی متر |
Xdensity | 2 | تراکم پیکسلی افقی بیشتر از صفر |
Ydensity | 2 | تراکم پیکسلی عمودی بیشتر از صفر |
Xthumbnail | 1 | تعداد پیکسل افقی تصویر کوچک RGB تعبیه شده. ممکن است صفر باشد |
Ythumbnail | 1 | تعداد پیکسل عمودی تصویر کوچک RGB تعبیه شده. ممکن است صفر باشد |
داده بندانگشتی | 3 × n | داده تصویر کوچک شطرنجی RGB 24 بیتی فشرده نشده |
پسوند JFIF بخش نشانگر APP0
این یک بخش اختیاری است که در صورت تعریف، باید فوراً بخش نشانگر JFIF APP0 را دنبال کند. این بخش توسط JFIF نسخه 1.02 و بالاتر پشتیبانی می شود و امکان جاسازی تصاویر کوچک در سه فرمت مختلف را فراهم می کند.
فیلد | اندازه (بایت) | توضیحات |
---|---|---|
نشانگر APP0 | 2 | FF E0 |
طول | 2 | طول قطعه به استثنای نشانگر APP0 |
شناسه | 5 | JFXX (4A 46 58 58 00) در ASCII با یک بایت تهی خاتمه می یابد |
قالب بندانگشتی | 1 | مشخص می کند که چه قالب داده ای برای تصویر کوچک تعبیه شده زیر استفاده می شود: 10: فرمت JPEG 11 : 1 بایت در هر پیکسل قالب پالت شده 13 : 3 بایت در هر پیکسل فرمت RGB |
داده های ریز | متغیر |
تبدیل JFIF به سایر فرمت های فایل تصویری
JFIF را می توان به فرمت های فایل تصویری محبوب مانند PNG، JPG و PDF تبدیل کرد.