【发布时间】:2014-02-05 23:04:34
【问题描述】:
我有一个网络 REST 服务,我试图从中提取图像(或 wav 文件)。 我可以通过内存流获取图像(jpg)并将其显示到图片框,然后将图片框保存到文件中。 我想要做的是消除使用图片框的中间步骤并将内存流直接保存到文件中。但是,生成的文件似乎不是 jpg 文件。 打开时会引发文件损坏错误。
我的代码如下:
Dim msgURI As String
msgURI = "http://192.168.0.1/attachment/12345/0"
Dim Pic As New PictureBox()
Dim web_client As New WebClient()
web_client.Credentials = New NetworkCredential("XX", "XX")
Dim image_stream As New MemoryStream(web_client.DownloadData(msgURI))
Pic.Image = Image.FromStream(image_stream)
Dim bm As Bitmap = Pic.Image
Dim filename As String = "c:\temp\test.jpg"
bm.Save(filename, Imaging.ImageFormat.Jpeg)
而且效果很好。
但是当我使用以下绕过位图和图片框时:
Using file As New FileStream(filename, FileMode.Create, System.IO.FileAccess.Write)
Dim bytes As Byte() = New Byte(image_stream.Length - 1) {}
image_stream.Read(bytes, 0, CInt(image_stream.Length))
file.Write(bytes, 0, bytes.Length)
image_stream.Close()
End Using
我得到一个损坏的 jpg 文件。
非常感谢任何帮助。
特里
【问题讨论】:
标签: vb.net rest memorystream