将流保存为图像

如何将流保存为图像并将图像存储在临时文件中?

尝试

Image img = System.Drawing.Image.FromStream(myStream); img.Save(System.IO.Path.GetTempPath() + "\\myImage.Jpeg", ImageFormat.Jpeg); 
 var tempFile = Path.GetTempFileName(); using (var fs = File.Create(tempFile)) { source.copyTo(fs); } 

其中source是源流。 现在,您的源流将保存在临时位置(由tempFile提供)。 请注意,文件扩展名为TMP。

看看Bitmap类 。 有一个构造函数重载,它将Stream作为参数,并且有一个名为Save的方法,您可以使用它将其保存为文件。

对于Windows Phone 8.1,我发现以下内容效果很好。 在您想要的任何路径上创建TempStorageFile,然后传入图像的流,如下所示:

 var fileStream = await TempStorageFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite); await RandomAccessStream.CopyAsync(imageStream, fileStream); 

您的流(图片)是以下代码中的stream

 using (Stream output = new FileStream ("mycat.jpg")) { byte[] buffer = new byte[32*1024]; int read; while ( (read=stream.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } } 

此代码的版权归Jon Skeet所有。我的贡献是文件的名称;)