我有一个在Azure上运行的Web应用程序。用户可以上传图片,我会为他们保存该图片。现在,当我收到图像时,将其作为byte[]
。我想将其另存为JPG
以节省空间。源图像可以是PNG,BMP或JPG之类的东西。
是否可以这样做?这需要在Azure上运行,而我正在使用WebApps / MVC5 / C#。
感谢您的帮助。
答案 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);
保存文件的最后一行,您可以选择格式。