【发布时间】:2011-09-03 18:32:12
【问题描述】:
我需要调整图像 (SDL_Surface*) 的 alpha 值,该图像已使用 SDL_Rect 裁剪并显示在屏幕上。我有一个包含 3 个图像的图像文件 (.bmp),我使用 SDL_Rect 裁剪了每个图像,但我需要单独调整每个图像的 alpha。 这可以做到吗?
如果做不到这一点,我可以将每个裁剪的 SDL_Surface* 存储到一个新的 SDL_Surface 中,我可以在其中将 SDL_SetAlpha 应用于每个吗? 我意识到我可以裁剪原始图像并单独导入它们,但在这种情况下它不是一个选项。
我希望这一切都是有道理的,我是个不喜欢在这里提问的菜鸟,所以如果我以任何方式违反了协议,请原谅我。
编辑:
这就是我所拥有的;
SDL_Rect cropBoxPump1 = { 5, 103, 200, 200 };
SDL_Rect positionPump1 = { 30, 103, 0, 0 };
SDL_Surface* pumpkinConvertedTo32bit = NULL;
SDL_Surface *pumpkins = SDL_LoadBMP( "pumpkins_faces.bmp" );
pumpkinConvertedTo32bit = SDL_DisplayFormat( pumpkins );
SDL_BlitSurface(pumpkinConvertedTo32bit, &cropBoxPump1, screen, &positionPump1);
因此,基于此,我实际上可以更改仅使用 SDL_Rect 裁剪的图像部分的 alpha 吗?而不是整个 SDL_Surface?
【问题讨论】: