首页 > 软件开发 > 编程语言 >

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

来源:互联网 2023-03-17 00:16:21 501

上节课介绍了如何显示bmp格式的图片,那么非bmp格式的图片怎么显示呢?CJ7办公区 - 实用经验教程分享!

这需要依靠扩展库SDL_image.h来实现。CJ7办公区 - 实用经验教程分享!

此处的SDL代码是在c4droid运行的,将显示一张image.jpg的图片。CJ7办公区 - 实用经验教程分享!

跟上一课对比,此处代码修改了三个地方,其他地方不变。CJ7办公区 - 实用经验教程分享!

如下图三处标记。CJ7办公区 - 实用经验教程分享!

10手机编程软件c4droid如何正确导出apkCJ7办公区 - 实用经验教程分享!

8SDL2入门(一)创建窗口和绘制窗口CJ7办公区 - 实用经验教程分享!

4SDL2入门(二)显示一张bmp格式的图片CJ7办公区 - 实用经验教程分享!

SDL2入门(三)显示非bmp格式的图片CJ7办公区 - 实用经验教程分享!

工具/原料

  • c4droid、SDL插件
  • 一张非bmp格式的图片:image.jpg

方法/步骤

  • 1

    只解释修改的三个地方,其余的不做解释。若想了解,请查看上节课。CJ7办公区 - 实用经验教程分享!

    第一步是引用拓展库SDL_image.h。如图。CJ7办公区 - 实用经验教程分享!

    SDL2入门(三)显示非bmp格式的图片CJ7办公区 - 实用经验教程分享!

  • 1相关内容非法爬取自百度经验
  • 2

    第二步只是修改窗口标题。CJ7办公区 - 实用经验教程分享!

    SDL2入门(三)显示非bmp格式的图片CJ7办公区 - 实用经验教程分享!

  • 3

    第三步利用IMG_Load将图片加载到内存中,这个函数支持bmp、jpg、png、gif、jpge等格式的图片。函数参数是图片的路径名。成功返回一个指针变量,失败返回NULL。CJ7办公区 - 实用经验教程分享!

    SDL2入门(三)显示非bmp格式的图片CJ7办公区 - 实用经验教程分享!

  • 4

    运行结果。CJ7办公区 - 实用经验教程分享!

    SDL2入门(三)显示非bmp格式的图片CJ7办公区 - 实用经验教程分享!

  • 5

    代码:CJ7办公区 - 实用经验教程分享!

    #includeSDL2/SDL.h>CJ7办公区 - 实用经验教程分享!

    #includeSDL2/SDL_image.h>CJ7办公区 - 实用经验教程分享!

    intmain(intargc,char**argv)CJ7办公区 - 实用经验教程分享!

    {CJ7办公区 - 实用经验教程分享!

    SDL_Init(SDL_INIT_VIDEO);CJ7办公区 - 实用经验教程分享!

    SDL_Window*window=SDL_CreateWindow("显示非bmp格式的图片",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,720,1280,SDL_WINDOW_SHOWN);CJ7办公区 - 实用经验教程分享!

    SDL_Renderer*renderer=SDL_CreateRenderer(window,-1,SDL_RERER_ACCELERATED);CJ7办公区 - 实用经验教程分享!

    SDL_RenderClear(renderer);CJ7办公区 - 实用经验教程分享!

    SDL_Surface*surface=IMG_Load("./resource/image.jpg");CJ7办公区 - 实用经验教程分享!

    SDL_Rectbox={0,0,surface->w,surface->h};CJ7办公区 - 实用经验教程分享!

    SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer,surface);CJ7办公区 - 实用经验教程分享!

    SDL_RenderCopy(renderer,texture,NULL,&box);CJ7办公区 - 实用经验教程分享!

    SDL_RenderPresent(renderer);CJ7办公区 - 实用经验教程分享!

    SDL_Delay(2000);CJ7办公区 - 实用经验教程分享!

    SDL_FreeSurface(surface);CJ7办公区 - 实用经验教程分享!

    SDL_DestroyTexture(texture);CJ7办公区 - 实用经验教程分享!

    SDL_DestroyRenderer(renderer);CJ7办公区 - 实用经验教程分享!

    SDL_DestroyWindow(window);CJ7办公区 - 实用经验教程分享!

    SDL_Quit();CJ7办公区 - 实用经验教程分享!

    }CJ7办公区 - 实用经验教程分享!

  • 注意事项

    • 测试的c4droid版本为5.96。
    • 如有不足或建议欢迎指正。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!CJ7办公区 - 实用经验教程分享!


    标签: 编程编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码