WPF中bitmapimage与byte[]格式相互转换

来源:互联网 发布:沼泽人思想实验知乎 编辑:程序博客网 时间:2024/06/04 20:12

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;
}
原创粉丝点击