public static byte[] ImageToBytes(System.Windows.Media.Imaging.BitmapEncoder encoder, System.Windows.Media.ImageSource imageSource) { byte[] bytes = null; var bitmapSource = imageSource as System.Windows.Media.Imaging.BitmapSource; if (bitmapSource != null) { encoder.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(bitmapSource)); using (var stream = new System.IO.MemoryStream()) { encoder.Save(stream); bytes = stream.ToArray(); } } return(bytes); }
/// <summary> /// Função privada para converter a o Chart para imagem /// </summary> /// <param name="visual">Objeto que deseja salvar em tipo PNG</param> /// <param name="filename">Onde será salvo</param> /// <param name="encoder">Tipo de codificação da imagem</param> private static void EncodeVisual(FrameworkElement visual, string filename, System.Windows.Media.Imaging.BitmapEncoder encoder) { try { // Os itens 96 e 74 deve-se ser modificado conforme a necessidade da imagem. var bitmap = new System.Windows.Media.Imaging.RenderTargetBitmap((int)visual.ActualWidth, (int)visual.ActualHeight, 96, 74, PixelFormats.Pbgra32); bitmap.Render(visual); var frame = System.Windows.Media.Imaging.BitmapFrame.Create(bitmap); encoder.Frames.Add(frame); using (var stream = File.Create(filename)) encoder.Save(stream); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error Message"); } }