SDL保存窗口为BMP
我正在用SDL
和C
编写程序,我希望能够将窗口保存为图像。
这是我的代码:
screen = SDL_GetWindowSurface(win); SDL_SaveBMP(screen,"screen");
但是当我执行它时,我得到:
Segmentation Fault
从其他来源我收集它的指针和内存访问。 有帮助吗?
在保存位图之前在窗口表面上调用SDL_LockSurface ,之后调用SDL_UnlockSurface 。
SDL_Surface *sshot = SDL_CreateRGBSurface(0, 750, 750, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); SDL_RenderReadPixels(renderer, NULL, SDL_PIXELFORMAT_ARGB8888, sshot->pixels, sshot->pitch); SDL_SaveBMP(sshot, "screenshot.bmp"); SDL_FreeSurface(sshot);