这是很久之前编写的代码,该代码是读取流数据指定位置的内容,获取图片的宽度、高度值。
由于系统更新,这些代码丢之不用,在这里存个档吧!
1. 获取gif图片宽度、高度。(binary_是图片流数据)
'***************************
' 函数: gif_size()
' 说明: 获取gif的宽高值
' 返回: [Array]
' Array(0) 宽度值
' Array(1) 高度值
'
Private Function gif_size()
On Error Resume Next
Dim w, h
w = sysString.hexToOct( hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) )
h = sysString.hexToOct( hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) ) If Err.Number<> Then
gif_size = Array(,)
Err.Clear()
Else
If sysNumber.isInt(w, ) And sysNumber.isInt(h, ) Then
gif_size = Array(w, h)
Else
gif_size = Array(,)
End If
End If
End Function
2. 获取jpg图片宽度、高度。(binary_是图片流数据)
'***************************
' 函数: jpg_size()
' 说明: 获取jpg的宽高值
' 返回: [Array]
' Array(0) 宽度值
' Array(1) 高度值
'
Private Function jpg_size()
On Error Resume Next
Dim w, h
Dim splitStr, i, tmp_binary 'FF 的ASC值为 255 C0 的ASC值为 192
'split是无法将流进行分割,但instrb可以获取标识所在的位置点
'由于有些图片含有多个ff c0标识,但最后一个才是最终的标识,所以采用反复不停过滤掉ff c0方式
tmp_binary = binary_
splitStr = chrb() & chrb()
i = instrb(tmp_binary, splitStr)
Do While i<>
w = sysString.hexToOct( hex(ascb(midb(tmp_binary,i+,))) & hex(ascb(midb(tmp_binary,i+,))) )'宽
h = sysString.hexToOct( hex(ascb(midb(tmp_binary,i+,))) & hex(ascb(midb(tmp_binary,i+,))) )'高
tmp_binary = midb(tmp_binary,i+)
i = instrb(tmp_binary, splitStr)
Loop If Err.Number<> Then
jpg_size = Array(,)
Err.Clear()
Else
If sysNumber.isInt(w, ) And sysNumber.isInt(h, ) Then
jpg_size = Array(w, h)
Else
jpg_size = Array(,)
End If
End If
End Function
3. 获取png图片宽度、高度。(binary_是图片流数据)
'***************************
' 函数: jpg_size()
' 说明: 获取jpg的宽高值
' 返回: [Array]
' Array(0) 宽度值
' Array(1) 高度值
'
Private Function png_size()
On Error Resume Next
Dim w, h
w = sysString.hexToOct( hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) )
h = sysString.hexToOct( hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) & hex(ascb(midb(binary_,,))) )'高 If Err.Number<> Then
png_size = Array(,)
Err.Clear()
Else
If sysNumber.isInt(w, ) And sysNumber.isInt(h, ) Then
png_size = Array(w, h)
Else
png_size = Array(,)
End If
End If
End Function