调整图像大小SDL/c++

Resize image SDL/c++

本文关键字:c++ SDL 图像 调整      更新时间:2023-10-16

我有一张图片,我想把它缩小,这样它就不是原来的大小了。

SDL_Rect bulletRect;
bulletRect.x = 10;
bulletRect.y = 10;
bulletRect.w = 10;
bulletRect.h = 10;
SDL_Surface *bullet = IMG_Load("/Users/tonymichaelsen/Documents/documents/Xcode-projects/c++/c++/bullet.png");
Uint32 colorKeyBullet = SDL_MapRGB(bullet->format, 255, 255, 255);
SDL_SetColorKey(bullet, SDL_SRCCOLORKEY, colorKeyBullet);

局部:

if (drawBullet) //bool set to true in key event
{
    SDL_BlitSurface(bullet, NULL, screen, &bulletRect);
}
SDL_Flip(screen);

唯一改变的是当我改变项目符号(图像)的x,y值时。当我改变w时,h不变,色键也没有作用。
怎么了?

SDL_BlitSurface不执行缩放,它要求目标大小等于源大小。

你可能想看看SDL-OpenGL集成,这将允许你使用视频卡的纹理功能来重新缩放精灵。

不是NULL,你可以传递一个新的矩形与你需要的大小。SDL_BlitSurface(子弹,NULL, screen, &

int SDL_BlitSurface(SDL_Surface *src, SDL_Rect * srrect, SDL_Surface *dst, SDL_Rect * dstret);

"矩形的宽度和高度决定了复制矩形的大小。只有位置在直域中被使用(宽度和高度被忽略)。"

它解释了它是如何工作的:

http://www.libsdl.org/docs/html/sdlblitsurface.html