[英]How to read the end of image file stream in VB6
有一个我想改进的其他程序员编写的代码。 该模块的目的是从摄像机获取实时图像流并将其显示在图片窗口中。 它是通过TCP IP连接来完成的。 这是完成的过程
Private Sub DataArrival(ByVal bytes As Long)
Dim str As String
' check the socket for data
camera.GetData str
Dim str As String
While InStr(str, Terminator) <> 0
**Do some processing and put only the data in the variable str
str = Mid(str, index, 1000)
lImgSize = lImgSize + Len(str)
strImg = strImg + str
If lImageSize >= 1614414 Then
Dim fileno As Integer
fileno = FreeFile()
Open ".\Imagefile.txt" For Output As #intFileNo
Print #fileno , strImg
Close #fileno
End If
End Sub
我有一个输入图像流,并将其转换为字符串,并且正在计算大小以检查图像的末尾以将其写入文件中。 但是硬编码的值并不能保证文件总是结尾。 有时,如果图像尺寸稍小于该尺寸,则我的图片框不会更新为实时图像。
编辑:这是image.txt文件包含的内容。
1
1575020 // file size header
424D36040C0000000000360400002800000000040000000300000100080000000000000000000000
--data--
--data--
020303030203010302010202030002030203020302020302030202030102
3BFB
在VB6中还有其他有效的方法可以解决此问题吗?
您需要同意一个完整的协议,该协议指定如何在TCP流上传递图像数据和图像数据长度。
然后在接收器中,开始将数据读入缓冲区,直到获得足够的数据以包含标头为止。 此时,您可以解析出数据长度,然后继续将数据读入数据缓冲区,直到至少达到该数量的数据为止。 当最终获得所有数据时,您可以解码并保存图像数据,然后关闭流(如果已关闭)或从头开始并解析文件头。
您可以在#VB Wiki上找到更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.