主题:求救呀!急呀!
告诉我!为什么 b_Height 会等于 124 应该是 132 才对呀!!我不明白!请高手指点呀!
这是 Theaa.bmp 文件的数据
C:\>debug d:\theaa.bmp
-d
0AEF:0100 42 4D 80 29 00 00 00 00-00 00 3E 00 00 00 28 00 BM.)......>...(.
0AEF:0110 00 00 72 02 00 00 84 00-00 00 01 00 01 00 00 00 ..r.............
0AEF:0120 00 00 42 29 00 00 25 2E-00 00 25 2E 00 00 00 00 ..B)..%...%.....
0AEF:0130 00 00 00 00 00 00 FF FF-FF 00 00 00 00 00 00 00 ................
0AEF:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AEF:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AEF:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AEF:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
下面是我写的程序 是用 Corel Script 写的!
Declare Function GetDec(Byval Char As String) As Long
Dim File_size As Long ' 文件大小
Dim Offset As Long ' 图像数据偏移地址
Dim Header_size As Long ' 信息头大小
Dim b_Width As long ' 图像的宽度
Dim b_Height As long ' 图像的高度
Dim Temp As String
Open "D:\Theaa.bmp" For Input As #1
Seek 1, &h0001
Temp = Input(2, 1)
If Temp <> "BM" Then Goto Err
Temp = ""
Seek 1, &h0003
File_size = GetDec(Input(4, 1))
Seek 1, &h000B
Offset = GetDec(Input(4, 1))
Seek 1, &h000F
Header_size = GetDec(Input(4, 1))
Seek 1, &h0013
b_Width = GetDec(Input(4,1))
Seek 1, &h0017
Temp = Input(4,1)
b_Height = GetDec(Temp)
Close 1
Message "File size: " & Cstr(File_size) & " Byte" \\
& Chr(13) & "Offset: " & Cstr(Offset) & " Byte"\\
& Chr(13) & "Header_size: " & Hex(Header_size) & "H Byte"\\
& Chr(13) & "b_Width: " & b_Width & " px"\\
& Chr(13) & "b_Height: " & b_Height & " px"
End
Err:
Message "错误!"
Function GetDec(Byval Char As String) AS Long
Dim index AS Long
Dim temp AS String
Dim str_temp AS String
For index = Len(Char) To 1 Step -1
temp = Cstr(ASC(Mid(Char, index, 1)))
If Len(temp) > 1 And Left(temp, 1) = "-" Then
temp = Mid(temp, 2, Len(temp))
End If
str_temp = str_temp & Hex(Clng(Temp))
Next
GetDec = Dec(str_temp)
End Function
这是 Theaa.bmp 文件的数据
C:\>debug d:\theaa.bmp
-d
0AEF:0100 42 4D 80 29 00 00 00 00-00 00 3E 00 00 00 28 00 BM.)......>...(.
0AEF:0110 00 00 72 02 00 00 84 00-00 00 01 00 01 00 00 00 ..r.............
0AEF:0120 00 00 42 29 00 00 25 2E-00 00 25 2E 00 00 00 00 ..B)..%...%.....
0AEF:0130 00 00 00 00 00 00 FF FF-FF 00 00 00 00 00 00 00 ................
0AEF:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AEF:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AEF:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0AEF:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
下面是我写的程序 是用 Corel Script 写的!
Declare Function GetDec(Byval Char As String) As Long
Dim File_size As Long ' 文件大小
Dim Offset As Long ' 图像数据偏移地址
Dim Header_size As Long ' 信息头大小
Dim b_Width As long ' 图像的宽度
Dim b_Height As long ' 图像的高度
Dim Temp As String
Open "D:\Theaa.bmp" For Input As #1
Seek 1, &h0001
Temp = Input(2, 1)
If Temp <> "BM" Then Goto Err
Temp = ""
Seek 1, &h0003
File_size = GetDec(Input(4, 1))
Seek 1, &h000B
Offset = GetDec(Input(4, 1))
Seek 1, &h000F
Header_size = GetDec(Input(4, 1))
Seek 1, &h0013
b_Width = GetDec(Input(4,1))
Seek 1, &h0017
Temp = Input(4,1)
b_Height = GetDec(Temp)
Close 1
Message "File size: " & Cstr(File_size) & " Byte" \\
& Chr(13) & "Offset: " & Cstr(Offset) & " Byte"\\
& Chr(13) & "Header_size: " & Hex(Header_size) & "H Byte"\\
& Chr(13) & "b_Width: " & b_Width & " px"\\
& Chr(13) & "b_Height: " & b_Height & " px"
End
Err:
Message "错误!"
Function GetDec(Byval Char As String) AS Long
Dim index AS Long
Dim temp AS String
Dim str_temp AS String
For index = Len(Char) To 1 Step -1
temp = Cstr(ASC(Mid(Char, index, 1)))
If Len(temp) > 1 And Left(temp, 1) = "-" Then
temp = Mid(temp, 2, Len(temp))
End If
str_temp = str_temp & Hex(Clng(Temp))
Next
GetDec = Dec(str_temp)
End Function