liye

liye

博客园 首页 新随笔 联系 订阅 管理
作者:飘遥(Zhenxing Zhou) tags:WPF Image byte WPF BitmapImage 有时要实现bitmapimage与byte[]相互转换,这里实现两个静态方法,直接调用即可。

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;
}
posted on 2010-05-15 13:31    阅读(4931)  评论(0编辑  收藏  举报