C++ SDL2 图像加载不同于 .bmp 的格式

标签 c++ image sdl-2

我刚才问了一个类似的问题,我问我如何使用 SDL2_image.h 加载不同的格式,它帮助我在我的 SDL 程序中加载图像。现在出现的问题是当我尝试加载格式不同于“.bmp”的文件时。

例如 - 这段代码运行良好,

Img = IMG_LoadTexture(renderer, "./image.bmp");
SDL_QueryTexture(Img, NULL, NULL, &w, &h);
rectImg.x = 0; rectImg.y = 0; rectImg.w = w / 2; rectImg.h = h / 2;

if (Img == NULL) {
    std::cout << "failed to load image";
}

这会在控制台中打印“无法加载图像”。

Img = IMG_LoadTexture(renderer, "./image.jpg");
SDL_QueryTexture(Img, NULL, NULL, &w, &h);
rectImg.x = 0; rectImg.y = 0; rectImg.w = w / 2; rectImg.h = h / 2;

if (Img == NULL) {
    std::cout << "failed to load image";
}

图像在同一个文件夹中,但在第二种情况下我得到一个错误。是 SDL2 图像无法加载这些类型的文件还是我做错了什么?

最佳答案

您似乎缺少处理压缩格式所需的初始化代码:

IMG_Init(IMG_INIT_JPG | IMG_INIT_PNG);

关于C++ SDL2 图像加载不同于 .bmp 的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47004426/

相关文章:

c++ - SDL_Init 失败并显示 'SDL_Error: Failed to connect to the Mir Server'

c++ - 抽象基类或派生类中的类变量?

c++ - 引入 protected 访问说明符背后的基本原理

php - 我正在使用 Chrome,无法使用 php 从 mysql 获取图像显示

c++ - 应用范围解析运算符导致编译器阻塞

c++ - 将 SDL2 与 g++/MinGW 一起使用会在启动时崩溃

c++ - 如何使用 Boost.Xpressive 正确解析 Mustache?

c++ - extern const char* const pointer 或 extern const char array[] 导致链接错误

android - 如何在android中实现 ImageView 的缩放效果?

html - 无限滚动使图像重复Y