SDL历程:课程设计之图片加载

紧接上一章我们说的显示文字,这一节我们在探讨下怎样在SDL_Surface上显示一张图片

废话就不多说了...直接切入正题..在这个步骤中我们要用到的基本函数有

SDL_Surface * SDLCALL IMG_Load(const char *file);

函数参数为图片文件名,

细心地人一定会问一个问题,怎么这个图片也是一个SDL_Sruface*呀,没错,就是一个SDL_Sruface*

我们在我们自己的屏幕上显示出来图片就是将这张图片贴在我们自己的屏幕上,其实到现在大家应该可以理解电影的播放情况了吧..也就是每秒切换多少张图片,那么我们的具体步骤是什么呢:?

1.初始化一个SDL_VIDEO,建立我们自己的SDL_Sruface*

2.加载图片,再次生成一个SDL_Sruface*

SDL_Surface *pic = IMG_Load(const char *file);

3.将图片的SDL_Surface  贴在屏幕的  SDL_Sruface上

SDL_BlitSurface(pic,0,screen,0);

4.刷新屏幕,这个可以至少有两种不同的方法的,我就不再在这里累述了...

5.释放资源,这个一定不要忘了...切忌,编程一定要养成一个好的习惯,好的习惯是成功的一半。

#include <SDL.h>
#include <SDL_gfxPrimitives.h>
#include <SDL_image.h>
#include <SDL_rotozoom.h>
#include <SDL_ttf.h>
#include <stdio.h>    

int main(int argc,char *argv[])
{
 if(SDL_Init(SDL_INIT_VIDEO) < 0 || TTF_Init() < 0 )
 {
  printf("Init error\n");
  return -1;
 }
 SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
 if(!screen)
 {
  printf("Init video mode error\n");
  return -1;
 }
 SDL_Surface *pic = IMG_Load("sample.bmp");
 if(!pic)
 {
  printf("Load bmp error\n");
  return -1;
 }
 SDL_BlitSurface(pic,0,screen,0);
 SDL_UpdateRect(screen,0,0,0,0);
 SDL_FreeSurface(pic);
 SDL_Delay(2000);
 TTF_Quit();
 SDL_Quit();
 return 0;
}

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/833361

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, include
, return
, sdl
, pic32
, sdl初学问题
, 屏幕
, screen
, sdl设计
, mfc surface 图片显示
一个
,以便于您获取更多的相关知识。

时间: 2024-11-17 13:56:25

SDL历程:课程设计之图片加载的相关文章

设计简单的Android图片加载框架_Android

目前Android 发展至今优秀的图片加载框架太多,例如: Volley ,Picasso,Imageloader,Glide等等.但是作为程序猿,懂得其中的实现原理还是相当重要的,只有懂得才能更好地使用.于是乎,今天我就简单设计一个网络加载图片框架.主要就是熟悉图片的网络加载机制. 一般来说,一个优秀的 图片加载框架(ImageLoader) 应该具备如下功能: 图片压缩 内存缓存 磁盘缓存 图片的同步加载 图片的异步加载 网络拉取 那我们就从以上几个方面进行介绍: 1.图片压缩(有效的降低O

设计简单的Android图片加载框架

目前Android 发展至今优秀的图片加载框架太多,例如: Volley ,Picasso,Imageloader,Glide等等.但是作为程序猿,懂得其中的实现原理还是相当重要的,只有懂得才能更好地使用.于是乎,今天我就简单设计一个网络加载图片框架.主要就是熟悉图片的网络加载机制. 一般来说,一个优秀的 图片加载框架(ImageLoader) 应该具备如下功能: 图片压缩 内存缓存 磁盘缓存 图片的同步加载 图片的异步加载 网络拉取 那我们就从以上几个方面进行介绍: 1.图片压缩(有效的降低O

深入剖析Android的Volley库中的图片加载功能_Android

一.基本使用要点回顾 Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载. ImageLoader的内部使用ImageRequest来实现,它的构造器可以传入一个ImageCache缓存形参,实现了图片缓存的功能,同时还可以过滤重复链接,避免重复发送请求. 下面是ImageLoader加载图片的实现方法: public void displayImg(View view){ ImageView imageView = (Im

Android 常见的图片加载框架详细介绍_Android

Android 常见的图片加载框架 图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行图片加载. 开源框架的源码还是挺复杂的,但使用较为简单.大部分框架其实都差不多,配置稍微麻烦点,但是使用时一般只需要一行,显示方法一般会提供多个重载方法,支持不同需要.这样会减少很不必要的麻烦.同时,第三方框架的使用较为方便,这大大的减少了工作量.提高了开发效率.

从源码分析Android的Glide库的图片加载流程及特点_Android

0.基础知识Glide中有一部分单词,我不知道用什么中文可以确切的表达出含义,用英文单词可能在行文中更加合适,还有一些词在Glide中有特别的含义,我理解的可能也不深入,这里先记录一下. (1)View: 一般情况下,指Android中的View及其子类控件(包括自定义的),尤其指ImageView.这些控件可在上面绘制Drawable (2)Target: Glide中重要的概念,目标.它即可以指封装了一个View的Target(ViewTarget),也可以不包含View(SimpleTar

图片加载失败,所导致的浏览器兼容问题

网站当中经常会遇到图片加载失败的问题,img中有地址,但是地址打开是错误的.情况如下: 不同浏览器处理错误图片是不一样的,有的干脆就显示差号,例如IE,有的显示一张破碎的图片,有的则是给一张高度比较大的默认图,例如PC端的火狐,IOS中Safari,还有安卓中的UC浏览器.这样在手机中就会导致左右两侧图片高度不一致!如下图: 解决方案 其实这里解决很简单,判断当图片加载失败的时候给一个默认图就可以了,不让浏览器使用其自带的默认图. <img src=http://www.aseoe.com/&quo

watchOS中进行异步图片加载和缓存的策略

watchOS中进行异步图片加载和缓存的策略 一.引言         iWatch是智能手表的一次革命.iWatch的应用也将会越来越多,基于watch的一些特点,watchOS的开发者需要更加精益的把握watch的UI和性能.运用watchOS自带的缓存体系进行数据的缓存,是增强用户体验度的一种方式,这篇博客,介绍在watchOS中进行异步加载图片和缓存的方法,愿与志同道合的朋友,一起交流. 关于watchOS中的缓存框架,在这里:http://my.oschina.net/u/234088

从代码分析Android-Universal-Image-Loader的图片加载、显示流程

从UNIVERSAL IMAGE LOADER. PART 3(四个DisplayImage重载方法详解)中,我们学习了Android-Universal-Image-Loader(以下简称UIL)中四个DisplayImage重载方法的使用,如果你还没有学习,最好先返回去看看,不然可能不理解这篇文章.在这篇文章中我们将主要探讨Android-Universal-Image-Loader的主要流程和这些流程相关的类的分析. 我们先了解一下UIL加载图片的流程(可以通过查看ImageLoader.

android图片加载库Glide

什么是Glide? Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中. Glide解决什么问题? Glide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗. Glide怎么使用? 在Glide的使用方面,它和Picasso的使用方法是比较相似的,并且他们的运行机制也有很