C#中byte[]转BitmapImage

byte[]转BitmapImage,此处using自动释放资源有坑,会影响BitmapImage图片的显示,必须将CacheOption 设置为 BitmapCacheOption.OnLoad才能正常显示出图片,之前在项目里我遇到过这个问题,影响不小。。。

        public static BitmapImage ByteToImage(this byte[] imageData)
        {
            BitmapImage biImg = new BitmapImage();
            try
            {
                using(MemoryStream ms = new MemoryStream(imageData))
                {
                    biImg.BeginInit();
                    biImg.StreamSource = ms;
                    biImg.CacheOption = BitmapCacheOption.OnLoad;
                    biImg.EndInit();
                    biImg.Freeze();
                }
            }
            catch (Exception ex)
            {
                Debug.Print($"转换图片失败:: {ex.Message}");
            }
            return biImg;
        }
原文地址:https://www.cnblogs.com/MichaelJson/p/12894532.html