繁体   English   中英

如何在VB6中读取图像文件流的结尾

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM