aspose.info
AZ

CFF2 - Kompakt Şrift Fayl Formatının 2-ci versiyası

Yeniləndi

CFF2 faylı nədir?

CFF2 file format is the version 2.0 of the CFF file format and allows efficient storage of glyph outlines and metadata similar to the CFF file format. CFF2 differs from CFF in that it is intended to be used in the context of an OpenType font as a ‘sfnt’ table with the tag CFF2. O, müstəqil proqram kimi istifadə edilə bilməz və digər OpenType cədvəllərindəki məlumatlardan asılıdır.

CFF2 Fayl Format

CFF2 file format specifications fayl formatı ilə bağlı daxili məlumat tərtibatı, məlumat növləri, cədvəllər və digər daxili məlumatlar haqqında təfərrüatları ehtiva edir. Bu, tərtibatçının arayışı üçün istinad edilə bilər. Bunlarla bağlı bəzi təfərrüatlar aşağıdakı kimidir.

Data Layout

CFF2 fayl formatının ikili məlumatları məntiqi olaraq bir sıra ayrı məlumat strukturları kimi təşkil edilmişdir. Binar verilənlər daxilində tərtibat aşağıdakı cədvəldə göstərildiyi kimidir.

GirişŞərhlər
BaşlıqSabit yer
Üst DICTSabit yer
Qlobal Subr İNDEKSİSabit yer
VariasiyaMağaza
FDSelectYalnız Font DICT INDEX-də birdən çox Şrift DICT olduqda təqdim edin.
Şrift DICT INDEX
Şrift DICT massiviŞrift DICT INDEX-ə daxildir.
Şəxsi DICTHər Şrift DICT üçün bir.

Yalnız ilk üç struktur sabit yerlərə əsaslanır. Qalanlara ofsetlər vasitəsilə çatılır və onların sırası dəyişdirilə bilər.

Məlumat növləri

CFF2 fayl formatı aşağıdakı məlumat növlərindən istifadə edir.

AdıRəsmiTəsvir
uint80-dan 255-ə qədər8 bitlik işarəsiz nömrə
uint160 - 6553516 bitlik imzasız nömrə
uint320 - 429496729532 bitlik imzasız nömrə
Offsetdəyişir1, 2, 3 və ya 4 bayt ofsetlər (İndeks cədvəlində OffSize sahəsi ilə müəyyən edilir)
OffSize1-dən 4-ə qədər1 baytlıq imzasız nömrə Ofset sahəsinin və ya sahələrin ölçüsünü müəyyən edir

O, bütün çox baytlıq rəqəmsal məlumatları və böyük endian bayt sırası ilə ofset sahələrini saxlayır. CFF2 formatı heç bir hizalama məhdudiyyətinə əməl etmədiyi üçün doldurulma baytlarından azaddır.

DICT Data

CFF2 faylları kompakt tokenləşdirilmiş formatda açar-dəyər cütləri kimi şrift lüğəti məlumatlarını ehtiva edir. Lüğət açarları 1 və ya 2 bayt operatorlar kimi kodlaşdırılır və lüğət dəyərləri dəyişən ölçülü rəqəmli operandlar kimi kodlaşdırılır. DICT Data formatından istifadə edən üç struktur var: Top DICT, Font DICT və Private DICT. Aşağıdakı cədvəldə göstərildiyi kimi müxtəlif ölçülü bir sıra tam operand növləri müəyyən edilir və kodlaşdırılır (operandın birinci baytı b0, ikincisi b1 və s.).

Ölçüb0 diapazonuDəyər diapazonuDəyər hesablanması
132 - 246-107 - +107b0 - 139
2247 to 250+108 to +1131(b0 - 247) * 256 + b1 + 108
2251 to 254-1131 to -108-(b0 - 251) * 256 - b1 - 108
328-32768 ilə +32767b1 « 8
529-(2^31) ilə +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Başlıq

İkili məlumatlar aşağıdakı Cədvəldə göstərilən formata malik başlıqdan başlayır.

NövüAdıTəsviri
uint8majorVersionƏsas versiyanı formatlayın. 2-yə təyin edin.
uint8minorVersionKiçik versiyanı formatlayın. Sıfıra təyin edin.
uint8headerSizeBaşlıq ölçüsü (bayt).
uint16topDictLengthBaytlarda Top DICT strukturunun uzunluğu.

İstinadlar

Həmçinin bax