当前位置: 高中信息技术 / 综合题
  • 1. (2021高二下·温州期中) 一幅图像的相邻像素颜色之间往往存在着连贯性,现有幅256色位图,第一行像素为100个,该行像素信息用十六进制可以描述为“FFFFFF……FF”,占100个字节。若用第一个字节表示数量,第二个字节表示颜色,用“64FF”2个字节即可表示该信息,但存储空间只占原来的1/50。基于此思想,现在针对256色位图的图像信息设计压缩算法,描述如下:

    ①将所有的小写转换为大写,大小写字母内码差为32,例如:ASC(“a”)-ASC(“A”)=32

    ②对像素压缩用两个字节存储,前一字节存储连续相同像素的个数,用两位十六进制表示;后一字节存储颜色编码。

    ③若连续像素个数超过255,用多段字节存储该段连续像素。具体压缩方法如下:

    依据上述算法设计VB程序,程序运行界面如下图所示:

    请回答下列问题:

    1. (1) 若要将窗体的标题改为“图像压缩”,应该更改窗体的属性。
    2. (2) 请在划线处填入合适的代码。

      Private Sub Command1_Click( )

          Dim ans As String, s As String, ch As String, key As String Dim i As Integer, pos As Integer

          Dim count As Integer, count1 As Integer, count2 As Integer

          s = Text1.Text

          For i = 1 To Len(s)

              ch = Mid(s, i, 1)

              If ch >= "a" And ch <= "f" Then s =

              End If

          Next i

          ans = ""

          key = Mid(s, 1, 2)

          pos = 3

          Do While pos <= Len(s) + 1

              count = 1

              Do While key = Mid(s, pos, 2)

                  count = count + 1

                  pos = pos + 2

              Loop

              count1 = count \ 255

              count2 = count Mod 255

              For i = 1 To count1

                  ans = ans + "FF" + key

              Next i

              If count2 > 0 Then ans=

              End If

              key = Mid(s, pos, 2)

              pos = pos + 2

          Loop

          Text2.Text = ans

      End Sub

      Function DtoH(n As Integer) As String

          temp = ""

          Do While n <> 0 r = n Mod 16

              n = n \ 16

              IfThen

                  temp = Chr(Asc("A") + r - 10) & temp

              Else

                  temp = r & temp

              End If

          Loop

          temp = "0" + temp      '加上前缀 0,保证转换结果为两位十六进制数

          DtoH = Mid(temp, Len(temp) - 1, 2)

      End Function

    3. (3) 如果某数据经过该程序压缩后的数据是“02FF026401EE01EF”,那么原数据为

微信扫码预览、分享更方便