多语言展示
当前在线:1882今日阅读:175今日分享:29

SDL2入门(三)显示非bmp格式的图片

上节课介绍了如何显示bmp格式的图片,那么非bmp格式的图片怎么显示呢?这需要依靠扩展库SDL_image.h来实现。此处的SDL代码是在c4droid运行的,将显示一张image.jpg的图片。跟上一课对比,此处代码修改了三个地方,其他地方不变。如下图三处标记。10手机编程软件c4droid如何正确导出apk8SDL2入门(一)创建窗口和绘制窗口4SDL2入门(二)显示一张bmp格式的图片
工具/原料
1

c4droid、SDL插件

2

一张非bmp格式的图片:image.jpg

方法/步骤
1

只解释修改的三个地方,其余的不做解释。若想了解,请查看上节课。第一步是引用拓展库SDL_image.h。如图。

2

第二步只是修改窗口标题。

3

第三步利用IMG_Load将图片加载到内存中,这个函数支持bmp、jpg、png、gif、jpge等格式的图片。函数参数是图片的路径名。成功返回一个指针变量,失败返回NULL。

4

运行结果。

5

代码:#include #include int main(int argc,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=IMG_Load('./resource/image.jpg');SDL_Rect box={0, 0, surface->w, surface->h};SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer, surface);SDL_RenderCopy(renderer, texture, NULL, &box);SDL_RenderPresent(renderer);SDL_Delay(2000);SDL_FreeSurface(surface);SDL_DestroyTexture(texture);SDL_DestroyRenderer(renderer);SDL_DestroyWindow(window);SDL_Quit();}

注意事项
1

测试的c4droid版本为5.96。

2

如有不足或建议欢迎指正。

推荐信息