SDL2入门(二)显示一张bmp格式的图片

2025-05-05 09:31:12

1、首先要把这张图片“问号.bmp”加载到内存中。利用函数SDL_LoadBMP,函数参数为一个图片路径字符串,函数返回一个surface指针。用结构体SDL_Surface的指针变量surface去接受。

SDL2入门(二)显示一张bmp格式的图片

3、补充一点:SDL的坐标如下图所示,横向的为x轴,纵向的为y轴,往箭头方向x或y值就越大。假如手机分辨率为1280*720,那么右上角坐标(720,0)。左下角(0,1280)。右下角(720,1280)。中心坐标(720/2,1280/2),即(360,640)。

SDL2入门(二)显示一张bmp格式的图片

5、第十一行SDL_RenderCopy是把texture粘贴在renderer上。函数参数:NULL表示texture截取的部分,这里为全部;&box表示texture在window上的显示坐标和显示大小。

SDL2入门(二)显示一张bmp格式的图片

7、运行结果

SDL2入门(二)显示一张bmp格式的图片

8、总结绘图方式:SDL_Surface*->SDL_Texture*->SDL_Renderer*->SDL_Window*沪枭诽纾代码:#include<SDL2/SDL.h>intmain(intargc,char**argv){SDL_Init(SDL_INIT_VIDEO);SDL_Window*window=SDL_CreateWindow("显示bmp图片",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,720,1280,SDL_WINDOW_SHOWN);SDL_Renderer*renderer=SDL_CreateRenderer(window,-1,SDL_RENDERER_ACCELERATED);SDL_RenderClear(renderer);SDL_Surface*surface=SDL_LoadBMP("./resource/问号.bmp");SDL_Rectbox={0,0,surface->w-50,surface->h-50};SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer,surface);SDL_RenderCopy(renderer,texture,&box,&box);SDL_RenderPresent(renderer);SDL_Delay(2000);SDL_FreeSurface(surface);SDL_DestroyTexture(texture);SDL_DestroyRenderer(renderer);SDL_DestroyWindow(window);SDL_Quit();}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢