0

我正在使用 vb6 通过 TCP-IP 从相机中检索图像,现在以字节为单位接收图像并将其写入文本并转换为图像格式大约需要 9 秒。总图像大小约为 1.6 mb,每个数据包大小为 8192 字节。另一个问题是 CPU 利用率为 100%。

现在我正在寻找一种方法来使图像显示更快并减少 CPU 处理。由于VB不支持多线程。我只剩下几个选择了。

我试图通过更改注册表中的 DefaultReceiveWindow ( http://smallvoid.com/article/winnt-winsock-buffer.html )将套接字接收大小从 8192 字节增加到 16384 字节

 [HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Afd \Parameters]
 DefaultReceiveWindow = 16384
 DefaultSendWindow = 16384

但是没有区别。我在带有奔腾处理器的 windows xp 上运行。有没有其他有效的方法可以让图像接收更快?

编辑:

这是接收代码

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

这是我的另一个相关问题How to read the end of image file stream in VB6

4

0 回答 0