如何在c ++,SDL中更改图像大小

时间:2014-11-27 15:16:25

标签: c++ image sdl

如何在下面的代码中更改图像大小:

const int XHome = 10, YHome = 10;
const int WHome = 50, HHome = 50;
.
.
.

SDL_Surface* Image = SDL_LoadBMP(Address);

SDL_Rect destRect;

destRect.x = WHome * x; 
destRect.y = HHome * y; 
destRect.w = WHome;
destRect.h = HHome;

SDL_BlitSurface(Image, NULL, mainScreen, &destRect);

SDL_FreeSurface(Image);

当我将Image放入另一个mainScreen的{​​{1}}时,它大于50 * 50。是否可以调整SDL_Surface的大小?谢谢。


当我设置WHOME和HHome,50 * 50时会发生这种情况 由于我只有5个声望,我无法发布图片。要查看图像,请点击here

但是当我将它们设置为原始图像尺寸时,这就是我所看到的:
here

1 个答案:

答案 0 :(得分:1)

根据SDL_BlitSurface文档:

  

仅在dstrect中使用位置(忽略宽度和高度)。

我强烈建议切换到SDL 2有很多原因(硬件加速很大);纹理和SDL_RenderCopy这个任务也变得微不足道。如果你在某种程度上坚持使用SDL 1,你可以手动查看缩放表面,或使用像SDL_gfx这样具有自定义blit函数的库。