[cairo] pango+cairo how to get position of each character?

Naveen M K naveen at syrusdark.website
Sat May 8 16:39:08 UTC 2021


Hi,

> For example, I have a text string "hello" and a truetype font file, and I want to apply different color to different character, currently I cannot find a way to implement it. 

You can simple use `PangoAttribute`[0] for coloring each character 
differently or use you can also use PangoMarkup[1] for achieving that.

For loading a font from truetype font file, I don't know whether Pango 
would be able to do that. I think it usually requires you to install the 
font before hand and reference by the name.

> then if no api to render one by one

There is an API for rendering a Layout character by character, 
`pango_cairo_show_layout_line`[2] where you can iterate a PangoLayout 
using `pango_layout_get_line`[3] to achieve that.

>  I can use freetype library to render each glyph

No idea how it will work.


[0]: https://developer.gnome.org/pango/1.46/pango-Text-Attributes.html
[1]: https://developer.gnome.org/pango/1.46/pango-Markup.html
[2]: 
https://developer.gnome.org/pango/1.46/pango-Cairo-Rendering.html#pango-cairo-show-layout-line
[3]: 
https://developer.gnome.org/pango/1.46/pango-Layout-Objects.html#pango-layout-get-lines

-- Naveen


More information about the cairo mailing list