将流保存为图像

时间:2010-09-06 11:48:30

标签: c# asp.net

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

5 个答案:

答案 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);