事实是:我在Ubuntu上使用代码块。我已经安装了SDL和SDL_ttf,并成功地包含和链接了它们。我想将文本呈现到字体FreeSerif的屏幕上。
问题是:当程序到达行TTF_OpenFont("FreeSerif.ttf,20")时,它返回NULL,如果传递给TTF_RenderText_Solid函数,则会导致段错误。我已经将字体文件添加到项目中,但它仍然不起作用。
代码如下:
TTF_Init();
TTF_Font *font = TTF_OpenFont("FreeSerif.ttf",20); //This returns NULL
if(!font){printf("Unable to open font");exit(1);} //The program exits here发布于 2013-05-07 17:52:51
我也遇到过同样的问题,似乎是路径错误,TTF_GetError()抛出了这个:
无法打开Arial.ttf
你应该将字体设置为绝对路径,而不是相对路径。对我来说,这是
/库/字体/Arial.ttf
而不是:
Arial.ttf
发布于 2013-05-10 16:20:52
您必须指定完整路径名。或者,您必须确保该文件位于程序的当前目录中(与可执行文件的目录不同)。
因此,请使用以下代码:
TTF_Font *font = TTF_OpenFont("/path/to/FreeSerif.ttf",20);发布于 2013-05-08 21:30:30
// load font.ttf at size 20 into font
TTF_Font *font;
font=TTF_OpenFont("font.ttf", 20);
if(!font) {
printf("TTF_OpenFont: %s\n", TTF_GetError());
// handle error
}找不到font.ttf路径,返回空值
if(!font) not check null value and TTF_GetError()它返回最后一个错误。
https://stackoverflow.com/questions/14043437
复制相似问题