فایل WOFF2 چیست؟
WOFF2 یک فرمت فایل فونت است که یک نسخه فشرده تر از قالب فونت باز وب (WOFF) است. این به عنوان راهی برای کاهش اندازه فایل فونت های وب توسعه داده شد که به آنها اجازه می دهد سریعتر بارگذاری شوند و از پهنای باند کمتری استفاده کنند. WOFF2 از یک الگوریتم فشردهسازی به نام Brotli برای فشردهسازی دادههای فونت استفاده میکند، که میتواند منجر به اندازههای فایلی شود که به طور قابلتوجهی کوچکتر از فونتهای معادل WOFF است. این فرمت توسط اکثر مرورگرهای وب مدرن از جمله کروم، فایرفاکس، سافاری، اپرا و اج (نسخه 14 به بعد) پشتیبانی می شود.
فرمت فایل WOFF2 - اطلاعات بیشتر
ساختار فایل داخلی یک فایل فونت WOFF2 از چندین بخش مختلف از جمله سربرگ، ابرداده، فهرست جدول و خود داده فونت تشکیل شده است.
هدر حاوی اطلاعاتی درباره فرمت کلی فایل، از جمله شماره نسخه و تعداد جداول موجود در فایل است.
بخش فراداده حاوی اطلاعاتی مانند نام قلم، حق چاپ و سایر اطلاعات مربوط به فونت است.
دایرکتوری جدول حاوی اطلاعاتی در مورد جداول مختلف تشکیل دهنده فونت است، از جمله مکان آنها در فایل و طول آنها.
خود داده های فونت به چندین جدول مختلف تقسیم می شوند که هر کدام حاوی اطلاعات خاصی در مورد فونت مانند کاراکترهای آن و حروف نوشته مربوط به آن است. این جداول ممکن است شامل موارد زیر باشد:
- جدول glyf شامل خطوط اصلی فونت، از جمله شکل و اندازه هر کاراکتر است.
- جدول ‘head’ حاوی اطلاعات کلی در مورد فونت، مانند شماره نسخه، اندازه طراحی و غیره است.
- جدول ‘hmtx’ حاوی اطلاعاتی در مورد معیارهای فونت، از جمله عرض و موقعیت کاراکترها است.
- هر جدول پس از تکمیل فرآیند رمزگذاری، فشرده شده و در فرمت فایل WOFF2 ذخیره می شود.
ساختار کلی به گونه ای طراحی شده است که امکان تجزیه و رمزگشایی سریع را فراهم می کند، به طوری که مرورگرهای وب می توانند به سرعت و کارآمد فونت را بارگذاری و در یک وب سایت نمایش دهند.
هدر WOFF2
هدر WOFF شامل یک امضای شناسایی است که نوع داده های موجود در فایل را نشان می دهد. هدر WOFF به همراه فیلدهای آن به شرح زیر است.
نوع | نام فیلد | توضیحات |
---|---|---|
UInt32 | امضا | 0x774F4632 ‘wOF2’ |
UIint32 | flavor | نسخه sfnt فونت ورودی. |
UIint32 | طول | اندازه کل فایل WOFF. |
UIint16 | numTables | تعداد ورودی های فهرست فونت جداول. |
UIint16 | رزرو شده | رزرو شده; روی صفر تنظیم کنید. |
UIint32 | totalSfntSize | اندازه کل مورد نیاز برای داده های فونت فشرده نشده، از جمله هدر sfnt، فهرست راهنمای و جداول فونت (شامل padding). |
UIint32 | totalCompressedSize طول کل بلوک داده های فشرده. | |
UIint16 | majorVersion | نسخه اصلی فایل WOFF. |
UIint16 | minorVersion | نسخه کوچک فایل WOFF. |
UIint32 | metaOffset | Offset به بلوک فراداده، از ابتدای فایل WOFF. |
UIint32 | metaLength | طول بلوک ابرداده فشرده. |
UIint32 | metaOrigLength | اندازه فشرده نشده بلوک ابرداده. |
UIint32 | privOffset | Offset به بلوک داده خصوصی، از ابتدای فایل WOFF. |
UIint32 | privLength | طول بلوک داده خصوصی. |