RLE4图片压缩算法的问题??研究过的高手帮忙啊
它的大小是19200 个字节,每个像素2-位,每个字节4 个像素,可以排
列320×240 个字符。这个数据以RLE 的编码形式发送,可以节省
传输时间。它的发送类型是“5”的二进制RLE 编码由0 后跟一个8 位数的连续0xFF 字节。下面的“c”码将解码输入数据。
void unpackDisplay ( void far* tdib, unsigned char far* rlescreen )
{
int i,j,k;
unsigned char far *sc4bpp, *sc2bpp, *screen, *ptr;
ptr = screen = (unsigned char far *)malloc(19200);
//RLE decode the screen
for (i=0; i<19200 && (ptr - screen) < 19200; i++)
{
*(ptr++) = *(rlescreen + i);
if (*(rlescreen + i) == 0)
{
unsigned char rlecount = *(unsigned char *)(rlescreen + ++i);
while (rlecount)
{
*(ptr++) = 0;
rlecount--;
}
}
else if (*(rlescreen + i) == 0xff)
{
unsigned char rlecount = *(unsigned char *)(rlescreen + ++i);
while (rlecount)
{
*(ptr++) = 0xff;
rlecount--;
}
}
}