【问题标题】:Getting the dimensions of a rendered text in Cimg library在 Cimg 库中获取渲染文本的尺寸
【发布时间】:2014-06-12 17:20:22
【问题描述】:

我有一个矩形的图像,我需要在其中绘制矩形的尺寸。现在我想找出我要绘制的文本的大小,以便确定合适的字体大小,以确保文本不会超出矩形边界,但也不会过小。我以前使用过这个: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 )

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

那么有人有使用 Cimg 解决此问题的经验吗?

【问题讨论】:

    标签: c++ cimg


    【解决方案1】:

    我假设您想使用方法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.
    

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

    【讨论】:

    • 非常感谢!正是我需要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2018-05-27
    • 1970-01-01
    • 2015-01-11
    • 2015-06-18
    • 2016-09-29
    相关资源
    最近更新 更多