gpt4 book ai didi

c++ - 为什么SDL程序不显示BMP图片?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:15 26 4
gpt4 key购买 nike

我从 Lazy 得到了以下代码:

#include <iostream>
#include "SDL/SDL.h"

using namespace std;

int main()
{
//Start SDL
SDL_Init(SDL_INIT_EVERYTHING);

SDL_Surface *hello = NULL;
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);

hello = SDL_LoadBMP("hello.bmp");
SDL_BlitSurface(hello, NULL, screen, NULL);
SDL_Flip(screen);
SDL_Delay(3000);
SDL_FreeSurface(hello);

//Quit SDL
SDL_Quit();
return 0;
}

有时显示图片,但大多数时候它只是一个黑色的窗口(这张图片有细长的字符串)。我在同一目录中得到了名为“hello.bmp”的 BMP 文件。PS.我有 ArchLinux。

最佳答案

在显示您的图像之前,您应该将其转换为与您选择的视频模式兼容的格式。因此你应该实现这样的东西:

SDL_Surface *imagef;
imagef = SDL_DisplayFormat(image);

在 blit 化 BMP 之前,使用 imagef 进行所有操作。

关于c++ - 为什么SDL程序不显示BMP图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com