我有一个Image对象img,我需要将它保存到内存流中。
保存方法有这个签名:
Image.Save(Stream,ImageCodecInfo,EncoderParameters)
但我不知道我在参数2和3中提供了什么。
我使用BinaryFormmater序列化解决问题,但我想使用最合适的方法。
感谢您的帮助!
答案 0 :(得分:3)
有一个更简单的重载:Image.Save(Stream, ImageFormat)
。第二个参数允许您选择要保存图像的格式,如BMP,PNG或JPEG。
image.Save(stream, ImageFormat.Bmp); // if you need to access the pixels, perhaps
image.Save(stream, ImageFormat.Png); // lossless compression (good for drawings)
image.Save(stream, ImageFormat.Jpeg); // lossy but powerful compression (good for photos)
答案 1 :(得分:1)
This link拥有您需要的信息。在该页面上,他们将此列为获取ImageCodecInfo的最简单方法:
public static ImageCodecInfo FindEncoder(ImageFormat format) {
if (format == null)
throw new ArgumentNullException("format");
foreach (ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders()) {
if (codec.FormatID.Equals(format.Guid)) {
return codec;
}
}
return null;
}