使用特定大小C ++的SDL_gfx调整图像大小

时间:2013-03-14 21:48:34

标签: c++ image resize sdl

我正在使用SDL_gfx尝试调整图像大小,但我无法完成它。

案件是我有:

SDL_Surface* screen = SDL_SetVideoMode(0,0,32,SDL_FULLSCREEN);

我也有:

SDL_Surface* back_img = SDL_Load("back.jpg");

如您所见,我将视频模式设置为全屏,因此屏幕表面的大小会因PC而异。我想找到一种在屏幕上制作back_img FIT的方法,但我有两个主要问题。

  1. screen->wscreen->h返回错误值!
  2. 我无法将图像调整为我想要的特定尺寸。
  3. 任何帮助?

2 个答案:

答案 0 :(得分:0)

您的screen->w值返回0,因为您使用SDL_SetVideoMode(0,0,...将它们设置为零 将它们设置为某些正确的值,例如SDL_SetVideoMode(800,600,32,SDL_FULLSCREEN);,您可以稍后通过使用不同的参数再次调用该函数来更改它们。


注意;设置SDL全屏将自动调整大小并拉伸图像以适合屏幕

答案 1 :(得分:0)

您可以使用SDL_VideoInfo来获取当前分辨率。请参阅以下代码:

const SDL_VideoInfo *info = SDL_GetVideoInfo();
SDL_Surface *screen = SDL_SetVideoMode( info->current_w, info->current_h, 32, SDL_FULLSCREEN );

现在,您屏幕的分辨率将与每台PC的分辨率相匹配。