SDL_显示BMP图片

说明

  1. 基于 SDL2.0 和 vs2017 开发 。
  2. 有多种方法可以显示BMP图片,本文只是一种。

SDL显示BMP流程

  1. 获取窗口。
  2. 获取窗口对应surface。
  3. 获取bmp对应surface。
  4. 将bmp的surface画在窗口的surface上。
  5. 更新窗口。
  6. 显示窗口。

示例代码

#include "stdafx.h"

#include "SDL.h"
#include "SDL_version.h"


#define IMG_PATH "D:\\11.bmp"
#undef main  //SDL 中定义了main,所以这里去掉,不然会执行错误!

int main(int argc,char **argv)
{
    printf("\n");

    printf("Hello SDL\n");

    SDL_version compiled;
    SDL_VERSION(&compiled);

    printf("SDL version %d.%d.%d ...\n",compiled.major, compiled.minor, compiled.patch);

    if (SDL_Init(SDL_INIT_VIDEO) < 0)
        return 1;

    SDL_Window *window;
    SDL_Surface *surface;
    SDL_Surface *surfaceBMP;

    //获取窗口指针,未指定位置信息,宽高为800x600
    window  = SDL_CreateWindow("SDL_bmp_title",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,800,600,0);
    surface = SDL_GetWindowSurface(window);

    surfaceBMP =  SDL_LoadBMP(IMG_PATH);

    //将bmp的surface画到surface上。
    SDL_BlitSurface(surfaceBMP,NULL,surface,NULL);

    //更新窗口并显示
    SDL_UpdateWindowSurface(window);
    SDL_ShowWindow(window);

    SDL_Delay(5000);

    SDL_FreeSurface(surfaceBMP);
    SDL_FreeSurface(surface);
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值