将流保存为图像
如何将流保存为图像并将图像存储在临时文件中?
尝试
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所有。我的贡献是文件的名称;)