【问题标题】:SDL Saving window as BMPSDL 将窗口另存为 BMP
【发布时间】:2015-05-10 22:09:19
【问题描述】:

我正在SDLC 中编写程序,我希望能够将窗口保存为图像。

这是我的代码:

screen = SDL_GetWindowSurface(win);
SDL_SaveBMP(screen,"screen");

但是当我执行它时,我得到:

Segmentation Fault

我从其他来源收集到关于指针和内存访问的信息。有什么帮助吗?

【问题讨论】:

标签: c linux segmentation-fault sdl


【解决方案1】:

在保存位图之前在窗口表面上调用SDL_LockSurface,之后调用SDL_UnlockSurface。

【讨论】:

  • 试过你的解决方案,但似乎 screen = SDL_GetWindowSurface(win);returns NULL
【解决方案2】:
    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); 

【讨论】:

  • 不需要锁定sshot吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 2015-07-14
  • 2011-01-05
  • 1970-01-01
相关资源
最近更新 更多