如何将流保存为图像并将图像存储在临时文件中?
答案 0 :(得分:35)
尝试
Image img = System.Drawing.Image.FromStream(myStream);
img.Save(System.IO.Path.GetTempPath() + "\\myImage.Jpeg", ImageFormat.Jpeg);
答案 1 :(得分:4)
var tempFile = Path.GetTempFileName();
using (var fs = File.Create(tempFile))
{
source.copyTo(fs);
}
其中source是源流。现在,您的源流将保存在临时位置(由tempFile提供)。请注意,文件扩展名为TMP。
答案 2 :(得分:1)
查看Bitmap Class。有一个构造函数重载,它将Stream作为参数,并且有一个名为Save的方法,您可以使用它将其保存为文件。
答案 3 :(得分:1)
您的信息流(图片)在下面的代码中为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所有。我的贡献是文件的名称;)
答案 4 :(得分:0)
对于Windows Phone 8.1,我发现以下内容效果很好。在你想要的任何路径上创建你的TempStorageFile,然后像这样传入你的图像流:
var fileStream = await TempStorageFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
await RandomAccessStream.CopyAsync(imageStream, fileStream);