将任何图像格式转换为JPG

时间:2018-07-25 00:55:08

标签: c#

我有一个在Azure上运行的Web应用程序。用户可以上传图片,我会为他们保存该图片。现在,当我收到图像时,将其作为byte[]。我想将其另存为JPG以节省空间。源图像可以是PNG,BMP或JPG之类的东西。

是否可以这样做?这需要在Azure上运行,而我正在使用WebApps / MVC5 / C#。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

因此@mjwills和Cody的答案是正确的。我仍然想把我确切需要的两种方法放进去:

    public static Image BitmapToBytes(byte[] image, ImageFormat pFormat)
    {
        var imageObject = new Bitmap(new MemoryStream(image));

        var stream = new MemoryStream();
        imageObject.Save(stream, pFormat);

        return new Bitmap(stream);
    }

也:

    public static byte[] ImgToByteArray(Image img)
    {
        using (MemoryStream mStream = new MemoryStream())
        {
            img.Save(mStream, img.RawFormat);
            return mStream.ToArray();
        }
    }

为大家加油

答案 1 :(得分:-1)

获取内存流,然后使用System.Drawing

var stream = new MemoryStream(byteArray)
Image img =  new Bitmap(stream);
img.Save(@"c:\s\pic.png", System.Drawing.Imaging.ImageFormat.Png);

保存文件的最后一行,您可以选择格式。