SDL Image介绍

SDL Image是一个轻量级的图片解码库,对比ImageMagick,它更简单易用。该库支持BMP、PNM、XPM、LBM、PCX、GIF、JPEG、PNG、TGA和TIFF等多种格式。在本文中,作者提到自己在早期开发中手动解码GIF、JPEG和PNG等格式,而现在通过SDL Image可能只需要一周就能完成。要使用SDL Image,需要先安装SDL,然后初始化和加载图片。虽然SDL Image不提供缓存机制和大文件处理,但允许自由修改源码以满足特定需求。此外,SDL Image的开源许可给予了使用者广泛的权利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍下一个轻量级图片解码库: SDL Image

对比ImageMagic的繁杂,我更喜欢SDL Image。


支持格式:(选自Readme)

BMP, PNM (PPM/PGM/PBM), XPM, LBM, PCX, GIF, JPEG, PNG,TGA, and TIFF formats.


06年做DLNA时候,那时经验不足,自己造了一堆轮子,GIF,JPEG,PNG,TIFF均自己手动解码。

现在回过头来看,还是经验和眼界的不足,当初2个人做了三个月,现在可能自己一个人一周就搞定了。


使用:(需要先安装SDL)

#include "SDL_image.h"   


初始化:

IMG_Init(IMG_INIT_JPG);


数据输入:

SDL_RWops

对于普通文件,可以调用IMG_Load自动生成。

对于内存或网络文件,可能就需要自己封装I/O接口了。这方便都不是很难。觉得有难度的,可以自己去参考ffmpeg的URL Protocol代码

实现对 UDP、HTTP,RTP的封装。甚至可以参考百度云的API,实现对云文件的封装。


注意:

IMG_Load并不提供Cache机制,对于大文件来说,这个接口基本等于没有。

建议自己设计RingBuf,根据平台CPU Cache大小进行优化。


解码:

对于PNG来说,解码主要在IMG_png.c文件。

通过这个文件可以迅速学会libpng的封装技巧。

IMG_LoadPNG_RW 


输出:

SDL_Surface

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值