SDL中如何理解RLE acceleration

在网上找到了一篇介绍这方面知识的贴子,现在它翻译记录在这里:

原贴地址: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非透明色来加快速度。
使用方式如下 :
 

 

 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值