二进制读取图片,判断其格式的问题

Mister 2006-07-13 10:04:35
我写了个函数利用 ADODB.Stream 对像读取图片头部 10 个字节,判断其图片格式。
问题如下:Stream.Read(10) 返回的 Byte() 字节数组却无法利用下标访问!!

Response.Write TypeName(Data) & "<BR>" & UBound(Data)
Response.End

结果如下:
Byte()
9

如何访问这个 Byte() 数组啊?


源代码如下:

Public Function GetImageType(FileName)
Dim Data

Set Stream = CreateObject("ADODB.Stream")

FileName = CStr(FileName) '强制类型装换
Stream.Mode = 3 '可读写
Stream.Type = 1 '二进制读取
Stream.Open '打开流对像
Stream.LoadFromFile FileName '加载文件
Data = Stream.Read(10) '预读取十个字节
Stream.Close '关闭流对像

'下面注释掉的语句,输出 Byte() 和 9 !! 但无法用 Data(0),Data(1) .... 来访问数据!!
'Response.Write TypeName(Data) & "<BR>"
'Response.Write UBound(Data)
'Response.End

'判断是否是 BMP 格式图片,标志为 42 4D 36 偏移值为 0
If Data(0) = 66 And Data(1) = 77 And Data(2) = 54 Then
GetImageType = 1
Exit Function
End If

'判断是否是 JPEG 格式图片,标志为 4A 46 49 46 偏移值为 6
If Data(6) = &H4A And Data(7) = &H46 And Data(8) = &H49 And Data(9) = &H46 Then
GetImageType = 2
Exit Function
End If

'判断是否是 GIF 格式图片,标志为 47 49 46 偏移值为 0
If Data(0) = &H47 And Data(1) = &H49 And Data(2) = &H46 Then
GetImageType = 3
Exit Function
End If

'判断是否是 PNG 格式图片,标志为 50 4E 47 偏移值为 1
If Data(1) = &H50 And Data(2) = &H4E And Data(3) = &H47 Then
GetImageType = 4
Exit Function
End If

'判断是否是 TIF 格式图片,标志为 49 49 2A 00 4C 42 偏移值为 0
If Data(0) = &H49 And Data(1) = &H49 And Data(4) = &H4C And Data(5) = &H42 Then
GetImageType = 5
Exit Function
End If

GetImageType = 0
End Function
...全文
567 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lds85930 2006-08-01
  • 打赏
  • 举报
回复
用 MidB LenB 等函数在 For 循环读取.
Mister 2006-07-13
  • 打赏
  • 举报
回复
我要的是二进制读取。

Dim Data
Data = Stream.Read(10)

使用 TypeName 函数判断出 Data 确实是 Byte() 数组
使用 UBound 语句判断出下标是 9

现在的问题就是如何读取这个变量 Data 数组的成员? 如果这样读取 Data(0) 则会发生错误!!!
  • 打赏
  • 举报
回复
stream有text格式的
Mister 2006-07-13
  • 打赏
  • 举报
回复
来个人啊,急等着解决问题!!!!!!!!!!!!
Mister 2006-07-13
  • 打赏
  • 举报
回复
顶、顶、顶..........
内容概要:本文围绕内置式永磁同步电机(IPMSM)的宽速域控制问题,提出了一种最大转矩电流比(MTPA)与基于解析法的弱磁控制协同策略,旨在实现电机在全速域范围内的高效、稳定运行。研究基于电压饱和判据,设计了精确的分区切换机制,确保在不同转速区间内MTPA与弱磁控制策略的无缝衔接与平滑过渡。通过Simulink搭建了完整的电机控制系统模型,对所提出的协同控制策略进行了详细的仿真验证,重点分析了其在动态加速、减速及负载突变等工况下的宽速域动态特性,证明了该方法在提升系统响应速度、抑制转矩脉动和维持电压稳定方面的优越性能。; 适合人群:从事电机控制、电力电子、新能源汽车或自动化领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握永磁同步电机在全速域范围内的先进控制策略;② 学习如何设计基于物理约束(如电压饱和)的多模式控制切换逻辑;③ 利用Simulink进行电机控制系统的建模、仿真与性能验证; 其他说明:该资源不仅提供了完整的理论分析和控制框图,还包含了可直接运行的Simulink仿真模型,便于读者复现结果、修改参数并进行二次开发,是深入理解电机高性能控制算法的理想实践材料。

28,402

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧