获取Cimg库中渲染文本的尺寸

时间:2014-06-12 17:20:22

标签: c++ cimg

我有一个矩形图像,我需要在其中绘制矩形的尺寸。现在我想找出我要绘制的文本的大小,以便我可以确定合适的字体大小,以确保文本不会超出矩形边界,但也不会不必要地小。我以前使用过这个:http://www.codeproject.com/Articles/363908/Simple-two-file-graphics-library-for-C-Cplusplus库,但是它有点限制使用它,但它确实有一个函数

int ezd_text_size( HEZDFONT x_hFont, const char *x_pText, int x_nTextLen, int *pw, int *ph )

给定字体和字符*将计算绘制文本所需区域的长度和宽度。我在Cimg文档中找不到类似的东西。

有人使用Cimg有这个问题的经验吗?

1 个答案:

答案 0 :(得分:3)

我假设您要使用方法CImg<T>::draw_text()CImg<T>图片上绘制文字。 在这种情况下,您可以在空实例上调用draw_text(),它会自动将图像大小设置为包含文本的最小边界框。因此,生成的图片的width()height()可以为您提供所需内容。

CImg<unsigned char> imgtext;
unsigned char color = 1;
imgtext.draw_text(0,0,"Hello guys !",&color,0,1,23);  // Draw with font height 23.
// Now, imgtext.width() and imgtext.height() gives you the dimensions you want.

然后检查文本是否适合您的盒子大小很容易,并最终减小字体大小直到它。