using Microsoft.Win32; using System; using System.IO; using System.Windows.Media.Imaging; namespace MyTests { internal class ImagesManip { public static byte[] BitmapSourceToByteArray(BitmapSource image) { #region Кодирование картинки using (var stream = new MemoryStream()) { var encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(image)); encoder.Save(stream); return stream.ToArray(); } #endregion } public static BitmapImage SelectImage() { #region Выбор картинки OpenFileDialog op = new OpenFileDialog { Title = "Выбрать изображение", Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" + "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" + "Portable Network Graphic (*.png)|*.png" }; if (op.ShowDialog() == true) return new BitmapImage(new Uri(op.FileName)); else return null; #endregion } public static BitmapImage NewImage(Users user) { try { MemoryStream ms = new MemoryStream(user.Image); BitmapImage image = new BitmapImage(); image.BeginInit(); image.StreamSource = ms; image.EndInit(); return image; } catch { return new BitmapImage(new Uri("../Resources/StandartImage.png", UriKind.RelativeOrAbsolute)); } } } }