ピクセル情報を抽出し、Qt プログラムで使用する QPixmap を設定する必要があります。
私は現在、2段階のプロセスでこれを行っています。
- SDL_Surface to Windows .bmp を使用
SDL_SaveBMP()
- .bmp から QImage
- QImage から QPixmap へ
中間の .bmp をメモリに保存しています。しかし全体として、.bmp に関連するファイル形式変換のオーバーヘッドが伴うため、このアプローチには満足できません。
より良い提案はありますか?
編集: jrokの回答に加えて、ピクセル形式の実験から、最終的な作業コードを共有する
SDL_Surface *screen = ... /* Whatever surface you want to copy from */
SDL_Surface *surface = SDL_CreateRGBSurface(SDL_SWSURFACE,
screen->w, screen->h,
24, rmask, gmask, bmask, amask);
SDL_BlitSurface(screen,NULL, surface,NULL);
QImage img(static_cast<uchar*>(surface->pixels),
surface->w, surface->h, QImage::Format_RGB888);