千家信息网

c#中Bitmap转bitmapImage高效方法是什么

发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,本篇内容介绍了"c#中Bitmap转bitmapImage高效方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2025年11月06日c#中Bitmap转bitmapImage高效方法是什么

本篇内容介绍了"c#中Bitmap转bitmapImage高效方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

 public BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap)        {            System.Drawing.Bitmap bitmapSource = new System.Drawing.Bitmap(bitmap.Width, bitmap.Height);            int i, j;            for (i = 0; i < bitmap.Width; i++)                for (j = 0; j < bitmap.Height; j++)                {                    System.Drawing.Color pixelColor = bitmap.GetPixel(i, j);                    System.Drawing.Color newColor = System.Drawing.Color.FromArgb(pixelColor.R, pixelColor.G, pixelColor.B);                    bitmapSource.SetPixel(i, j, newColor);                }            MemoryStream ms = new MemoryStream();            bitmapSource.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);            BitmapImage bitmapImage = new BitmapImage();            bitmapImage.BeginInit();            bitmapImage.StreamSource = new MemoryStream(ms.ToArray());            bitmapImage.EndInit();             return bitmapImage;        }

这种方法快多了。赶紧快去试试吧:

public BitmapImage ToBitmapImage(System.Drawing.Bitmap ImageOriginal)        {             System.Drawing.Bitmap ImageOriginalBase = new System.Drawing.Bitmap(ImageOriginal);            BitmapImage bitmapImage = new BitmapImage();            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())            {                ImageOriginalBase.Save(ms, System.Drawing.Imaging.ImageFormat.Png);                bitmapImage.BeginInit();                bitmapImage.StreamSource = ms;                bitmapImage.CacheOption = BitmapCacheOption.OnLoad;                bitmapImage.EndInit();                bitmapImage.Freeze();            }            return bitmapImage;        }

补:C# Byte[]、Image、Bitmap 之间的相互转换

///           /// 将图片Image转换成Byte[]          ///           /// image对象          /// 后缀名          ///           public static byte[] ImageToBytes(Image Image, System.Drawing.Imaging.ImageFormat imageFormat)          {                if (Image == null) { return null; }                byte[] data = http://www.cnblogs.com/peasana/archive/2012/02/13/null;                using (MemoryStream ms= new MemoryStream())              {                     using (Bitmap Bitmap = new Bitmap(Image))                  {                        Bitmap.Save(ms, imageFormat);                        ms.Position = 0;                        data = https://cache.yisu.com/upload/information/20211118/112/375749.Png);              BitmapImage bImage = new BitmapImage();              bImage.BeginInit();              bImage.StreamSource = new MemoryStream(ms.ToArray());              bImage.EndInit();              ms.Dispose();              Bi.Dispose();              System.Windows.Controls.Image i = new System.Windows.Controls.Image();              i.Source = bImage;              return i ;          }      //byte[] 转换 Bitmap   public static Bitmap BytesToBitmap(byte[] Bytes)           {               MemoryStream stream = null;               try               {                   stream = new MemoryStream(Bytes);                   return new Bitmap((Image)new Bitmap(stream));               }               catch (ArgumentNullException ex)               {                   throw ex;               }               catch (ArgumentException ex)               {                   throw ex;               }               finally               {                   stream.Close();               }           }       //Bitmap转byte[]            public static byte[] BitmapToBytes(Bitmap Bitmap)           {               MemoryStream ms = null;               try               {                   ms = new MemoryStream();                   Bitmap.Save(ms, Bitmap.RawFormat);                   byte[] byteImage = new Byte[ms.Length];                   byteImage = ms.ToArray();                   return byteImage;               }               catch (ArgumentNullException ex)               {                   throw ex;               }               finally               {                   ms.Close();               }           }       }

"c#中Bitmap转bitmapImage高效方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0