C# 将流另存为图像

C# 将流另存为图像,c#,asp.net,C#,Asp.net,如何将流另存为图像并将图像存储在临时文件中?请查看。有一个构造函数重载,它将一个流作为参数,还有一个名为的方法,您可以使用该方法将其保存为文件。您的流(图像)在下面的代码中是Stream using (Stream output = new FileStream ("mycat.jpg")) { byte[] buffer = new byte[32*1024]; int read; while ( (read=stream.Read(buffer, 0, buffer

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

请查看。有一个构造函数重载,它将一个流作为参数,还有一个名为的方法,您可以使用该方法将其保存为文件。

您的流(图像)在下面的代码中是
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);
    }
}
此代码受我的贡献的版权保护(文件名;)

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

试试看

Image img = System.Drawing.Image.FromStream(myStream);

img.Save(System.IO.Path.GetTempPath() + "\\myImage.Jpeg", ImageFormat.Jpeg);

对于WindowsPhone8.1,我发现以下几点可以很好地工作。以您想要的任何路径创建TempStorageFile,然后像这样传入图像流:

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

“作为图像”到底是什么意思?这里的图像是指要存储在临时文件位置的jpeg图像文件,流是System.IO.stream.+1,路径是.GetTempFileName(),我不知道它曾经存在过。FileStream不包含创建的定义!!此外,我用作输入的流是System.IO.stream,我想将此IO流存储到临时文件中的映像中。很抱歉,我的意思是File.Create,而不是FileStream.Create。将编辑答案。源流可以是任何流。位图步骤不是必需的。我们可以将流直接写入一个文件。映像步骤是不必要的。我们可以将流直接写入文件。是的。。但我假设banupriyavijay希望应用程序中的图像有这样的功能。否则,它将只是一个文件复制操作,可以使用System.IO.file.copy()完成。当我写这行时,Image img=System.Drawing.Image.FromStream(stream);它给我一个错误“参数无效”。如果您试图覆盖图像,此解决方案会出现问题。我得到一个通用错误发生在GDI+
var fileStream = await TempStorageFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
            await RandomAccessStream.CopyAsync(imageStream, fileStream);