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

C++ SDL2 Image Loading different formats than .bmp

本文关键字:bmp 不同 格式 加载 SDL2 图像 C++      更新时间:2023-10-16

我刚才问了一个类似的问题,我问我如何使用 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);