如何使用文本中的自定义字体创建PNG图像

我正在用 C 编写一个程序,它将文本作为用户输入,并生成一个png图像作为输出,并使用以自定义字体呈现的相同文本。

我知道 C 没有用于图形的标准库,所以我试图确定对初学者开发人员来说最有效的库是什么。

我的操作系统是 Ubuntu,我想制作 CLI 工具

例如https://github.com/matsuyoshi30/germanium

回答

对于这样一个简单的要求,您可以使用cairo,只需调整 png 大小和字体:

#include <cairo.h>

int main(void)
{
    cairo_surface_t *surface;
    cairo_t *cr;

    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 250, 50);
    cr = cairo_create(surface);

    cairo_set_source_rgb(cr, 0, 0, 0);
    cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL,
      CAIRO_FONT_WEIGHT_NORMAL);
    cairo_set_font_size(cr, 40.0);

    cairo_move_to(cr, 10.0, 35.0);
    cairo_show_text(cr, "Hello world!");

    cairo_surface_write_to_png(surface, "image.png");

    cairo_destroy(cr);
    cairo_surface_destroy(surface);

    return 0;
}

由于您在 ubuntu 上:

sudo apt-get install -y libcairo2-dev

并编译:

gcc demo.c -o demo `pkg-config --cflags --libs cairo`

对于更复杂的用途,您应该结合cairo使用pango

https://fossies.org/linux/pango/examples/cairosimple.c


以上是如何使用文本中的自定义字体创建PNG图像的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>