首页 > 解决方案 > 将二进制转换回图像

问题描述

我有 wcf 服务和 Windows 窗体。我能够将图像转换为二进制并将其以 varbinary(MAX) 数据类型存储到我的 sql server 中的 EmpTable 中。我使用 linq 和实体数据模型来访问我的表。现在我试图在我的表单上将 EmpTable 显示到 DataGridView,我注意到它在列上显示“System.byte []”。因此,当我尝试将其转换回图像时,它失败了。现在我对如何获取数据并将其转换回图像一无所知。我所有的 linq 命令都在我的服务中,我在我的 winforms 中使用它。我怎样才能做到这一点?

标签: c#linqwcf

解决方案


这里函数从 转换byte[]BitmapImage

    /// <summary>
    /// Convert byte[] to bitmapimage
    /// </summary>
    /// <param name="array"></param>
    /// <returns></returns>
    public static BitmapImage byteArrayToImage(byte[] array)
    {
        if (array != null)
        {
            using (var ms = new MemoryStream(array))
            {
                var image = new BitmapImage();
                image.BeginInit();
                image.CacheOption = BitmapCacheOption.OnLoad;
                image.StreamSource = ms;
                image.EndInit();
                return image;
            }
        }
        return null;
    }

推荐阅读