Laden...

Konverter: System.Drawing.Image <-> System.Windows.Controls.Image

Erstellt von Joetempes vor 13 Jahren Letzter Beitrag vor 13 Jahren 11.036 Views
Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 13 Jahren
Konverter: System.Drawing.Image <-> System.Windows.Controls.Image

Konverter-Methode für verschiedene Image-Typen

2 Methoden:

  1. Konvertiert ein System.Drawing.Image in ein System.Windows.Controls.Image
  2. Konvertiert ein System.Windows.Controls.Image in ein System.Drawing.Image

/// <summary>
        /// Konvertiert ein System.Drawing.Image in ein System.Windows.Controls.Image
        /// </summary>
        /// <param name="image">zu konvertierendes System.Drawing.Image</param>
        /// <returns>konvertiertes System.Windows.Controls.Image</returns>
        public static System.Windows.Controls.Image ConvertImageToWpfImage(System.Drawing.Image image)
        {
            if(image == null)
                throw new ArgumentNullException("image", "Image darf nicht null sein.");

            using(System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(image))
            {
                using(MemoryStream ms = new MemoryStream())
                {
                    dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);

                    System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();

                    bImg.BeginInit();
                    bImg.StreamSource = new MemoryStream(ms.ToArray());
                    bImg.EndInit();

                    System.Windows.Controls.Image img = new System.Windows.Controls.Image();
                    img.Source = bImg;

                    return img;
                }
            }            
        }


        /// <summary>
        /// Konvertiert ein System.Windows.Controls.Image in ein System.Drawing.Image
        /// </summary>
        /// <param name="image">zu konvertierendes System.Windows.Controls.Image </param>
        /// <returns>konvertiertes System.Drawing.Image</returns>
        public static System.Drawing.Image ConvertWpfImageToImage(System.Windows.Controls.Image image)
        {
            if(image == null)
                throw new ArgumentNullException("image", "Image darf nicht null sein.");

            BmpBitmapEncoder encoder = new BmpBitmapEncoder();
            MemoryStream ms = new MemoryStream();    
            encoder.Frames.Add(BitmapFrame.Create((BitmapSource)image.Source));
            encoder.Save(ms);
            System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
            return img;          
        }

Schlagwörter: <System.Windows.Controls.Image, System.Drawing.Image>