从图片框中保存图像为流格式

本文关键字:图像 格式 保存 | 更新日期: 2023-09-27 17:49:33

我想将图片保存在图片框中,当我将其保存为PNG格式时,它可以正常工作但当我想将其保存为其他格式时,就会出现

GDI +异常中出现一般性错误

这是我的代码:

Image Img = pictureBox1.Image;
byte[] inputImage = new byte[Img.Width * Img.Height];
System.IO.MemoryStream ms = new System.IO.MemoryStream();
ms.Read(inputImage, 0, Img.Width * Img.Height);
if (System.Drawing.Imaging.ImageFormat.Jpeg.Equals(Img.RawFormat))
{
    pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
}
else if (System.Drawing.Imaging.ImageFormat.Gif.Equals(Img.RawFormat))
{
    ms.Seek(0, SeekOrigin.Begin);
    pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
}
else if (System.Drawing.Imaging.ImageFormat.Png.Equals(Img.RawFormat))
{
    pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
}
else if (System.Drawing.Imaging.ImageFormat.Bmp.Equals(Img.RawFormat))
{
    pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
}

从图片框中保存图像为流格式

试试这个方法:

public Stream ImageToStream(Image image, System.Drawing.Imaging.ImageFormat format)
{
    MemoryStream ms = new MemoryStream();
    image.Save(ms, format);
    return  ms;
}

并使用:

using(Stream stream = ImageToStream(pictureBox1.Image, 
                           System.Drawing.Imaging.ImageFormat.Gif))
{
    ...
}