C语言 字符串宽度(像素)

rn0zuynd  于 9个月前  发布在  其他
关注(0)|答案(3)|浏览(114)

有谁能告诉我如何计算字符串的宽度像素,提供字体大小像素?我必须在C在Linux下做吗?

shyt4zoc

shyt4zoc1#

你不能自己做这件事,除非你有一个定点字体(每个字符总是X像素宽)。在这种情况下,当然,总宽度= PixelPerChar * strlen(String)。
在比例字体的一般情况下,如果字符可能会彼此“靠近”,例如A和V(一种称为“字距调整”的操作),则需要向字体渲染库请求,例如libGD 2。此类库通常提供字符串的边界框,给定字体文件,大小,方向和其他参数。
使用gdImageStringFT的GD2示例:

int bbox[8]; // x,y of the rectangle bounding the text:
// see manual

gdImageStringFT(NULL,  // "Tell me only"
      bbox,0,
      "/home/lserni/fonts/Verdana.ttf",18,
      0.0,0,0,"Hello world"); 

if (checks on bbox OK)
{
   gdImageStringFT(gdHandle, bbox, 0, ...);
}

字符串

ylamdve6

ylamdve62#

在最基本的情况下,假设它是一个固定长度的字体:

int string_width = strlen(str) * CHAR_WIDTH_PX;

字符串
其中str是C字符串,CHAR_WIDTH_PX是字体的字符宽度。
当然,在不同的框架和系统中,事情是以不同的方式完成的。为了帮助你,我们需要更多关于你的环境的信息。

qf9go6mv

qf9go6mv3#

您可能需要像FreeType library这样的东西

相关问题