簡體   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