一段解压算法代码,求对应的压缩代码,谢谢!
Sub uncomp(ByVal ifile As String, ByVal ofile As String)
Dim dat(65) As Byte
Dim dat2(1) As Byte
Dim compdat As Long
Dim c As Long
Dim olen As Long
Dim ilen As Byte
c = 256
If Dir(ifile) = "" Then
Exit Sub
End If
If Dir(ofile) <> "" Then
kill(ofile)
End If
Open ifile For Binary As #1
Open ofile For Binary As #2
olen = 0
For i = 1 To LOF(1)
Get #1, i, dat
'从ifile读入i个字节进入dat
ilen = 0
compdat = dat(0) + dat(1) * c
ilen = ilen + 2
For t = 0 To 15
If compdat >= 32768 Then
ls1 = Int(dat(ilen + 1) / 8)
ls2 = (dat(ilen + 1) Mod 8) * c + dat(ilen)
ls2 = ls2 * 2
ilen = ilen + 2
If ls1 = 0 Then
ls1 = dat(ilen + 1) * c + dat(ilen)
ilen = ilen + 2
End If
For z = 1 To ls1
If ls2 > olen Then
dat2(0) = 0
dat2(1) = 0
Else
Get #2, olen - ls2 + 1, dat2
End If
Put #2, olen + 1, dat2
olen = olen + 2
Next z
Else
Put #2, olen + 1, dat(ilen)
Put #2, olen + 2, dat(ilen + 1)
olen = olen + 2
ilen = ilen + 2
End If
compdat = (compdat Mod 32768) * 2
Next t
i = i + ilen - 1
Next i
Close #1
Close #2
End Sub
相关推荐
C语言zip解压缩算法源代码
zip压缩方法,为了代码简练,笔者只保留了dynamic部分的解压缩,而把store和fixed两种压缩格式的压缩函数拿掉了,CRC校验部分的代码也拿掉了,需要的同学请根据GZIP的源代码自行加上。
图像压缩与解压缩算法解析
问题:将一张bmp图像的灰度值压缩存储到一个中间文件,然后利用中间文件还原这张图片。 BMP文件被分成4个部分:位图文件头(Bitmap File Header)、位图信息(BitmapInfoHeader)、颜色表(Color Map)和位图数据(即图像数据,Data Bits或Data Body) 第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。其定义如下:typedef struct tagBITMAPFILEHEADER{ WORD bfType; 位图文件类型,必须是0x424D,即字符串“BM” DWORD bfSize; 位图文件大小,包括这14个字节....此篇文章详细的介绍了图像解压缩与压缩算法,附有源代码且带有注释,希望能够提供帮助
LZW算法实现的压缩与解压缩程序的C源代码
使用C语言编写的LZW压缩与解压缩程序的改进版,有以下改进: 1. 避免了LZW算法会增大文件大小这个缺陷 2. 提供存储的压缩方法 3. 提升了压缩比 4. 提升了程序的执行速度 程序使用ANSI C语言编写,可在多平台下编译。压缩包内附编译好的程序、源代码和说明文档。谢谢大家的支持!
LZ78算法实现对任意字符串的压缩与解压
运行程序之后输入任意的字符串,将字符串转化成二进制数字字符串,然后利用LZ78算法实现对二进制字符串压缩解压,最后再恢复原来的字符串
RLE算法压缩解压源代码文件
RLE算法压缩解压源代码文件


VB基础类
