Faux Bold and Italic
Faux bold and italic using Freetype API |
Modern Outline fonts (Truetype and Opentype) have a separate file for each weight and style for better readability. They are usually suffixed as normal, Bold, Italic and Bold-Italic. This means that one cannot render these variants if the font files are missing. From the end user perspective this is annoying at times.
Following APIs can be used to generate faux bold and italic variants.
Freetype API
cairo_ft_font_face_set_synthesize (font_face, CAIRO_FT_SYNTHESIZE_BOLD
| CAIRO_FT_SYNTHESIZE_OBLIQUE);
| CAIRO_FT_SYNTHESIZE_OBLIQUE);
Cairo transformation API
Use x-stretch transformation for bold and skew transformation for italic.
cairo_matrix_t font_matrix;
font_matrix.xx *= 1.5; // Bold - stretch
font_matrix.xy = -5; // Italic - skew
Harfbuzz API
This didn't work for me.
hb_font_set_synthetic_slant(font, .5);
Comments
Post a Comment