在网上找到了一篇介绍这方面知识的贴子,现在它翻译记录在这里:
原贴地址:http://lists.libsdl.org/pipermail/sdl-libsdl.org/2000-June/009784.html
RLE (Run-Length-Encoding) ,当使用colorkey 功能时,也就是指定某种颜色是透明色,RLE 加速可被用于压缩图片文件,举例说明:
一个图片如下格式:("-" 代表 white and "#" 代表 black)
--------
--####-- -######- -######- --####-- --------
如果没有使用RLE的话,图像数据会是这样表示:白,白,白,白,白,白,白...黑,黑,黑,黑,白,..
但如果使用RLE的话,我们会说10个白,4个黑,3个白,6个黑。。。这样存储会节省不少空间。
当把图像绘画到显示屏上时,非RLE会用如下代码进行绘制:
if (pixel != the_transparent_color) draw_pixel(...);
也就是说需要执行 "width * height" 'if' 语句。RLE 绘制通过使用copy函数copy非透明色来加快速度。
使用方式如下 :