public static byte[] ToByteArray(this BitmapFrame frame, BitmapFrameFormatMode mode = BitmapFrameFormatMode.Png) { if (frame.IsNullOrEmpty()) { return(null); } byte[] result = null; using (MemoryStream stream = new MemoryStream()) { BitmapEncoder encoder = mode.GetBitmapEncoder(); if (encoder != null) { encoder.Frames.Add(frame); encoder.Save(stream); result = stream.ToArray(); } } return(result); }
public static BitmapEncoder GetBitmapEncoder(this BitmapFrameFormatMode mode) { BitmapEncoder encoder = null; switch (mode) { case BitmapFrameFormatMode.Bmp: encoder = new BmpBitmapEncoder(); break; case BitmapFrameFormatMode.Jpeg: encoder = new JpegBitmapEncoder(); break; case BitmapFrameFormatMode.Gif: encoder = new GifBitmapEncoder(); break; case BitmapFrameFormatMode.Png: encoder = new PngBitmapEncoder(); break; case BitmapFrameFormatMode.Tiff: encoder = new TiffBitmapEncoder(); break; case BitmapFrameFormatMode.Wmp: encoder = new WmpBitmapEncoder(); break; default: encoder = null; break; } return(encoder); }