SDL2> PNG图像>无法加载图像

时间:2020-07-14 15:44:39

标签: c sdl sdl-2

情况

我想在我的应用程序中加载并使用我的图像(.png)。但是,当我尝试加载图像时,出现以下错误

./ sources / texture.c:9时出错:“纹理为NULL”

>无法打开pawn.png

代码

texture.c

texture_t*
texture_load(renderer_t *renderer, const char *path) {
    texture_t *tex = IMG_LoadTexture(renderer, path);

    if (tex == NULL)
        error_print(AT, "The texture is NULL");

    return tex;
}

game.c

game_t*
game_create() {
    ...
    IMG_Init(IMG_INIT_PNG);
    ...
    texture_load(renderer, "pawn.png")
    ...
}

文件夹结构

.
├── build
│   ├── app
│   └── pawn.png
├── headers
│   ...
│   ├── game.h
|   ...
│   ├── texture.h
│   ...
├── resources
│   └── pawn.png
└── sources
    ...
    ├── game.c
    ...
    ├── texture.c
    ...

奖励

如果您想查看项目的整个“图像”,则可以单击here

1 个答案:

答案 0 :(得分:1)

也许这是一个愚蠢的假设,但是您确定文件位于当前应用程序目录中吗?

在POSIX系统上,您可以使用以下命令进行检查:

if (access("pawn.png", F_OK) == 0) {
    printf("File exists\n");
} else {
    printf("File doesn't exist\n");
}

如果打印出File doesn't exist,则需要指定文件的完整路径。