zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    gcc 编译
    UltraEdit 添加到右键菜单
    linux 编译错误:undefined reference to `__gxx_personality_v0'
    UltraEdit 取消生成.bak文件
    容器
    Windows CEvent事件
    Windows _beginthreadex 线程类与线程池
    C++ 工厂模式
    Mutex linux线程锁
    windows CRITICAL_SECTION 线程锁
  • 原文地址:https://www.cnblogs.com/chuncn/p/1902474.html
Copyright © 2011-2022 走看看