aspose.info
AZ

OTF - TrueType şrift fayl formatı

Yeniləndi

OTF faylı nədir?

.otf uzantısı olan fayl OpenType şrift formatına aiddir. OTF şrift formatı daha genişlənir və rəqəmsal tipoqrafiya üçün TTF formatlarının mövcud xüsusiyyətlərini genişləndirir. Microsoft və Adobe tərəfindən hazırlanmış OTF özündə PostScript və TrueType şrift formatlarının xüsusiyyətlərini birləşdirir. Bu, OTF formatını əksər yazı sistemlərinə uyğunlaşdırır və buna görə də əsas kompüter platformalarında vahid şəkildə istifadə olunur. OpenType şrift formatı Mac OS X və Windows 2000 və sonrakı versiyalar tərəfindən dəstəklənir.

Qısa tarix

The requirement of OpenType fonts originated as a requirement for a more expressive font format that could handle fine typography. In addition, it was aimed to meet the requirements of complex behaviour of many of the world’s writing systems. Microsoft attempted to license Apple’s advanced typography technology, known as GX Typography, in the early 1990’s. This didn’t go well and as a result, Microsoft started enhancing its owns TrueType font technology in 1994. Dəyişikliklər həmçinin Adobe-nin 1-ci Tip (PostScript) şrift formatlarının xüsusiyyətlərinə cavab verən daha uyğun şrift formatını təqdim etmək üçün də daxil edilmişdir.

Adobe, 1996-cı ildə Microsoft-a həm Apple-ın TrueType, həm də öz Type 1 şrift formatlarını əvəz etmək səylərinə qoşuldu. Bu, məhdudiyyətləri aradan qaldırmaq və yeni genişləndirmələr əlavə etmək üçün hər iki əsas şrift formatının birləşməsi ilə nəticələndi. Bu yeni texnologiya eyni il OpenType adı ilə təqdim edildi.

OTF Fayl Formatının Xüsusiyyətləri

OTF specifications are available publicly by Microsoft and can be referred to from developer’s perspective. Like TTF, it uses the same ‘sfnt’ container structure and is compatible with the TrueType specifications. Data inside an OpenType font file is used for different purposes such as calculating the text layout, defining glyphs as TrueType or Compact Font Format (CFF) outlines, providing monochromatic or color bitmaps or SVG documents as alternate glyph descriptions, and meta-data information.

OTF Məlumat Növləri

OTF faylları Big Endian-da olan aşağıdakı məlumat növlərindən istifadə edir.

Məlumat növüTəsvir
uint88 bitlik işarəsiz tam ədəd.
int88 bitlik işarəli tam ədəd.
uint1616 bitlik işarəsiz tam ədəd.
int1616 bit işarəli tam ədəd.
uint2424 bitlik işarəsiz tam ədəd.
uint3232-bit işarəsiz tam ədəd.
int3232 bit işarəli tam ədəd.
Sabit32-bit imzalı sabit nöqtə nömrəsi (16.16)
FWORDşrift dizayn vahidlərində kəmiyyəti təsvir edən int16.
UFWORDşrift dizayn vahidlərində kəmiyyəti təsvir edən uint16.
F2DOT14Aşağı 14 bit fraksiya ilə 16 bit imzalanmış sabit nömrə (2.14).
LONGDATETIMETarix və vaxt, 1 yanvar 1904-cü il, UTC, gecə 12:00-dan etibarən saniyələrlə göstərilir. Dəyər işarələnmiş 64 bitlik tam ədəd kimi təmsil olunur.
EtiketCədvəl, dizayn-variasiya oxu, skript, dil sistemi, xüsusiyyət və ya baza xəttini müəyyən etmək üçün istifadə edilən dörd uint8s massivi (uzunluq = 32 bit)
Ofset16Cədvəl üçün qısa ofset, uint16 ilə eyni, NULL ofset = 0x0000
Offset32Cədvəl üçün uzun ofset, uint32 ilə eyni, NULL ofset = 0x00000000
Versiya16Nöqtə16Əsas və kiçik versiya nömrələri ilə dolu 32 bit dəyər. (Cədvəl Versiya Nömrələrinə baxın.)

OTF cədvəlləri kataloqu

OTF faylı cədvəl kataloqu ilə başlayır. Bu kataloq şrift faylındakı cədvəllərin ən yüksək səviyyəli toplusudur. Fayldakı şriftlərin sayından asılı olaraq, cədvəl kataloqu faylın müxtəlif yerində yerləşə bilər. Məsələn, şrift faylında yalnız bir şrift varsa, cədvəl kataloqu faylın 0 baytından başlayır. Birdən çox OpenType Şrift kolleksiyası olduqda, cədvəl kataloqunun başlanğıcı TTCHeader-də göstərilir.

NövüAdıTəsviri
uint32sfntVersion0x00010000 və ya 0x4F54544F (‘OTTO’)
uint16numTablesCədvəllərin sayı.
uint16searchRangeMaximum power of 2 less than or equal to numTables, times 16 ((2**floor(log2(numTables))) * 16, burada **” eksponentasiya operatorudur).
uint16entrySelector Log2 maksimum gücü 2 ədəddən az və ya ona bərabərdir (log2(searchRange/16), mərtəbəyə bərabərdir(log2(numTables))).
uint16rangeShiftnumTables times 16, minus searchRange ((numTables * 16) - axtarış aralığı).
tableRecordtableRecords[numTables]Cədvəl qeydləri massivi—şriftdə hər üst səviyyəli cədvəl üçün bir

Cədvəl qeydi

Şriftdəki hər bir yuxarı səviyyəli cədvəl üçün aşağıdakı sahələrdən ibarət Cədvəl Qeydi var.

NövüAdıTəsvir
EtikettableTagCədvəl identifikatoru.
uint32yoxlama cəmiBu cədvəl üçün yoxlama məbləği.
Offset32ofsetŞrift faylının əvvəlindən ofset.
uint32uzunluq Bu cədvəlin uzunluğu.

OpenType şrift faylındakı hər bir cədvəl cədvəl teqləri kimi tanınan adlarla təmsil olunur. Massivdəki bütün qeydlərin etiketə görə artan qaydada çeşidlənməsi mütləqdir.

İstinadlar

Həmçinin bax