SDL学习(二) 设置SDL扩展库

时间:2022-07-24 12:03:30

上一篇说的是基本的SDL入门以及如何进行bmp文件的装载和优化,下面学习的是如何进行如jpg,png等其他图片格式文件的处理(因为SDL仅显示支持bmp的装载):

    首先,需要从以下地址http://www.libsdl.org/projects/SDL_image/下载与编译器和操作系统适应的image处理包(其中包含include的头文件内容和lib中的静态和动态链接库内容,我将其放到了SDL_HOME的相应的文件夹中防止最后路径混乱)

    然后就还要在工程中设置依赖项中增加如下的内容SDL学习(二) 设置SDL扩展库

     当然了,你可以在头文件SDL.h中加入SDL_image.h,这样就不用在每次写程序都在头文件中添加了。

 好了,在开始教程之前,首先要下载作者提供的html教程,其中详尽的列举了如何使用image.h头文件的方法,下面是自己的小总结:

几种基本的图片格式介绍

TGA  

图像文件,此文件格式的结构比较简单,属于一种图形,图像数据的通用格式,在多媒体领域有着很大影响,是计算机生成图像向电视转换的一种首选格式。TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为四方形,若需要有圆形、菱形甚至是缕空的图像文件时,TGA可就派上用场了!TGA格式支持压缩,使用不失真的压缩算法。

BMP

 Windows位图文件

PNM

.pbm 便携位图文件

.pgm 256灰度的编写灰度图

.ppm 全色调的编写像素图

XPM

X11(X Window系统是一种位图显示的视窗系统,为GUI环境提供了基本框架)图形,以.xpm结尾,能够直接以#include包含在代码块中

XCF

GIMP(GUN图像处理程序)的本地图像文件,这种格式是一直在变化的,并且由于没有提供给GIMP装载XCF文件的库,所以最好是用GIMP装载了这种文件以后将其用其他图片格式表示出来

PCX

IBM个人电脑画笔(IBM PC Paintbrush)支持的零包文件(Zsoft)格式

GIF

可交换图像文件格式,相信不会陌生了,是一种基于LZW(一种通用无损压缩算法)的连续色调的无损压缩格式,其压缩率一般在50%左右,它不属于任何应用程序,目前机会所有的相关软件都支持它,其图像深度从1bit到8bit,也即GIF最多支持256种色彩的图像。

JPG

联合摄影专家组的图像文件格式(Joint Photographic Experts Group JFIFformat),以.jpg或者.jpeg结尾

TIF

TIFF是一种比较灵活的图像格式,它的全称是Tagged Image FileFormat,文件扩展名为TIF或TIFF。该格式支持256色24位真彩色、32位色、48位色等多种色彩位,同时支持RGBCMYK以及YCbCr等多种色彩模式,支持多平台。TIFF文件可以是不压缩的,文件体积较大,也可以是压缩的,支持RAWRLELZWJPEGCCITT3组和4组等多种压缩方式。

LBM

交叉位图格式(Interleaved Bitmap)

PNG

可移植的网络图像文件(Protaable Network Graphics)

如何装载其它图片格式的文件

A在装载png、tga、jpg和bmp类型的文件的时候,只需要采用原来的方式使用SDL_Loadxxx(xxx代表文件类型)就可以实现了,如下可以装载前面的bmp转化而来的jpg文件

SDL学习(二) 设置SDL扩展库

B在装载动态图像的时候,可以首先建立一个SDL_RWops类型的图像文件,然后使用SDL_RWFFormFile来装载目标图片成为RWops文件,最后使用IMG_Loadxxx(待装载的文件类型)来装载REOPS来成为Surface即可,下面是装载GIF的例子:

SDL学习(二) 设置SDL扩展库