c# - 将 varbinary 转换为图像

标签 c# silverlight

我设法将 Image 转换为 varbinary 并将其存储在我的数据库中。我一直在尝试将 varbinary 转换为图像,但我在这里遇到了一些麻烦。

首先,我从服务中的数据库中获取二进制文件。

    public Binary getAfbeelding(int id)
    {

        var query = (from p in dc.Afbeeldings
                     where p.id == id
                     select p.source).Single();

        Binary source = query;
        return source;
    }

然后我尝试使用在 StackOverflow 上找到的代码将 varbinary 转换为图像:

    public static string convertToImage(Binary source)
    {
        byte[] b = source.ToArray();
        MemoryStream ms = new MemoryStream(b);
        Image img = Image.FromStream(ms);
        return img.Source.ToString();
    }

我在调用 new MemoryStream 之前遇到了麻烦:

'OndernemersAward.EditAfbeeldingServiceReference.Binary' does not contain a definition for 'ToArray' and no extension method 'ToArray' accepting a first argument of type 'OndernemersAward.EditAfbeeldingServiceReference.Binary' could be found (are you missing a using directive or an assembly reference?)

出于某些奇怪的原因,我不能使用“普通”二进制文件,它总是会告诉我使用 OndernemersAward.EditAfbeeldingServiceReference.Binary,这是我的 ServiceReference,如您所见。

如何解决?

最佳答案

1) 在您的项目中添加对 System.Data.Linq.dll 的引用

2) 然后试试这个:

public static Image ConvertToImage(System.Data.Linq.Binary iBinary)
    {
        var arrayBinary = iBinary.ToArray();
        Image rImage = null;

        using (MemoryStream ms = new MemoryStream(arrayBinary))
        {
            rImage = Image.FromStream(ms);
        }
        return rImage;
    }

关于c# - 将 varbinary 转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8279553/

相关文章:

c# - 使用 C# 文本框更新 Mysql 中的多列

c# - 在 WPF 应用程序中加载 Interop.WMPLib Windows MediaPlayer 时出错

c# - AllowUserToAddRows 不适用于 DataGridView 上的 List<> 数据源

xml - DateTime.Now 持续时间 +- 2 小时?

silverlight - 如何将 ResourceDictionary (Styles.xaml) 中 Silverlight ListItem DataTemplate 中的按钮与处理程序连接起来?

silverlight - 确定对象是否可见和可点击

Silverlight 服务 codegen 只创建异步函数调用? (SLsvcUtil.exe)

c# - 我可以使用 JWT 进行身份验证,但我的名称声明在 ASP.NET Core 应用程序中无法识别

c# - 为什么 DataReader 给出 "Enumeration Yielded No Results"?

c# - Silverlight Web 应用程序未处理的异常代码 4004