WPF Image控件 Source: Byte[] ,BitmapImage 相互转换


文件转为byte[]

FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
byte[] desBytes = new byte[fs.Length];
fs.Read(desBytes, 0, desBytes.Length);
fs.Close();  

 

byte[]转换为BitmapImage:

public static BitmapImage ByteArrayToBitmapImage(byte[] byteArray) 
{ 
    BitmapImage bmp = null;  
    try 
    { 
        bmp = new BitmapImage(); 
        bmp.BeginInit(); 
        bmp.StreamSource = new MemoryStream(byteArray); 
        bmp.EndInit(); 
    } 
    catch 
    { 
        bmp = null; 
    }  
    return bmp; 
}

BitmapImage转换为byte[]:

public static byte[] BitmapImageToByteArray(BitmapImage bmp) 
{ 
    byte[] byteArray = null;  
    try 
    { 
        Stream sMarket = bmp.StreamSource;  
        if (sMarket != null && sMarket.Length > 0) 
        { 
            //很重要,因为Position经常位于Stream的末尾,导致下面读取到的长度为0。 
            sMarket.Position = 0; 

            using (BinaryReader br = new BinaryReader(sMarket)) 
            { 
                byteArray = br.ReadBytes((int)sMarket.Length); 
            } 
        } 
    } 
    catch 
    { 
        //other exception handling 
    }  
    return byteArray; 
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM