gpt4 book ai didi

开罗,获取表面等宽拉丁字符的宽度

转载 作者:行者123 更新时间:2023-11-30 15:03:25 26 4
gpt4 key购买 nike

我有 future PNG字符的宽度和高度,需要绘制精确适合的图片。

int  font_height=13, font_width=?;
cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, font_width * pic_width_in_chars, font_height * pic_height_in_chars );
cairo_t *cr = cairo_create(surface);
cairo_select_font_face(cr, "Consolas", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size( cr, font_height );
// fill surface by characters, no need help

对于“Сonsolas”,我手动选择了比例:字体宽度=字体高度*3/5;但如何从 API 获取它呢?

谢谢,extents.x_advance 正是我所寻求的。

最佳答案

你不能这样做,因为单个字形的宽度取决于它是哪个字符。您可以将每个宽度相加或使用整个字符串来计算整个宽度。

对于等宽字体,任何字符的宽度都等于任何其他字符的宽度。因此,如果计算一,则可以将其乘以字符串中的字符数。

所以简短的答案是

  • 字符没有单位宽度,等宽字体除外。

使用cairo_text_extents()可以帮助快速计算字符串的宽度。如果是等宽字体,则可以使用任意字符并将其作为单位宽度。

关于开罗,获取表面等宽拉丁字符的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40740011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com