介绍下一个轻量级图片解码库: 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&