Sub Compress(Data() As Byte, suPtr As Long, Optional ByVal I As Long)
Dim e As Long  '记录数组指针 array pointer
Dim a1 As Long '记录数组值重复的个数 count of repeated arrays
Dim a2 As Long '记录第一个重复的序号 first number of repeated one
Dim su() As Byte '压缩后的数组 compressed array
Dim a3 As Long    '记录压缩后的数组的指针 compressed array pointer
If I <= UBound(Data) Then
    '压缩算法 compressing method
    ReDim su(I)
    Do While e < I
        DoEvents
        If (a1 = 255) Then
            su(a3) = Data(e)
            su(a3 + 1) = a1
            a3 = a3 + 2
            a1 = 0
            If (e = I - 1) Then
                su(a3) = Data(I)
                su(a3 + 1) = 0
                ReDim Preserve su(a3 + 5)
            End If
        Else
            If Data(e) = Data(e + 1) Then
                a1 = a1 + 1
                If (e = I - 1) Then
                    su(a3) = Data(e)
                    su(a3 + 1) = a1
                    ReDim Preserve su(a3 + 5)
                End If
            Else
                su(a3) = Data(e)
                su(a3 + 1) = a1
                a3 = a3 + 2
                a1 = 0
                If (e = I - 1) Then
                    su(a3) = Data(I)
                    su(a3 + 1) = 0
                    ReDim Preserve su(a3 + 5)
                End If
            End If
        End If
        e = e + 1
    Loop
    suPtr = a3
    ReDim Data(UBound(su)) As Byte
    CopyMemory Data(0), su(0), UBound(su) + 1
    Exit Sub
Else
    '还原算法 restore method
    Dim msu() As Byte '还原后要放入的数组 decompressed array
    Dim mi As Long    '记录还原时读出的指针 decompressed pointer
    Dim mx As Long    '重复的个数的递增 repeating count's increasing
    Dim ma As Long    '记录写入的指针 writed pointer
    mi = 0: mx = 0: ma = 0
    ReDim msu(I)
    Do While mi < suPtr
        Do While mx <= Data(mi + 1)
            msu(ma) = Data(mi)
            mx = mx + 1
            ma = ma + 1
        Loop
        mx = 0
        mi = mi + 2
    Loop
    ReDim Data(UBound(msu)) As Byte
    CopyMemory Data(0), msu(0), UBound(msu) + 1
End If
End Sub能给我解释一下这段程序么?它这用的是什么压缩方法?我该找找哪方面资料。我采集的图像是BMP格式的。谢谢各位了。急用