opentype
1.0.0
Paket ini menyediakan pembangun dan parser dari font opentype. Mungkin bermanfaat untuk melihat abstraksi tingkat lebih tinggi yang disebut font , yang secara internal bergantung pada paket ini.
use opentype :: truetype :: tables :: names :: { Names , NameID } ;
use opentype :: truetype :: tables :: { FontHeader , HorizontalHeader } ;
use opentype :: File ;
macro_rules! ok ( ( $result : expr ) => ( $result . unwrap ( ) ) ) ;
let path = "SourceSerifPro-Regular.otf" ;
let mut tape = ok ! ( std :: fs :: File :: open ( path ) ) ;
let File { mut fonts } = ok ! ( File :: read ( & mut tape ) ) ;
let font_header : FontHeader = ok ! ( ok! ( fonts [ 0 ] . take ( & mut tape ) ) ) ;
assert_eq ! ( font_header . units_per_em , 1000 ) ;
let horizontal_header : HorizontalHeader = ok ! ( ok! ( fonts [ 0 ] . take ( & mut tape ) ) ) ;
assert_eq ! ( horizontal_header . ascender , 918 ) ;
let names : Names = ok ! ( ok! ( fonts [ 0 ] . take ( & mut tape ) ) ) ;
let names = names
. iter ( )
. map ( | ( ( _ , _ , _ , name_id ) , value ) | ( name_id , value ) )
. collect :: < std :: collections :: HashMap < _ , _ > > ( ) ;
assert_eq ! ( ok! ( names [ & NameID :: FullFontName ] . as_ref ( ) ) , "Source Serif Pro" ) ;
assert_eq ! ( ok! ( names [ & NameID :: DesignerName ] . as_ref ( ) ) , "Frank Grießhammer" ) ; Kontribusi Anda sangat dihargai. Jangan ragu untuk membuka masalah atau permintaan tarik. Perhatikan bahwa setiap kontribusi yang diajukan untuk dimasukkan dalam proyek akan dilisensikan sesuai dengan persyaratan yang diberikan dalam lisensi.md.