【问题标题】:Converting binary data to image in C#在 C# 中将二进制数据转换为图像
【发布时间】:2012-01-09 16:44:53
【问题描述】:

我不知道如何从 MySQL 数据库中检索图像并将其从二进制格式转换为位图图像以在 ASP:ImageHTML Image 中显示它。我可以上传图像,但它被转换为二进制数据,我不明白如何将其转换回位图格式:(

protected void Button2_Click(object sender, EventArgs e)
{
    cmd = new OdbcCommand("SELECT picture from profile limit 1", MyConnection);
    MyConnection.Open();
    OdbcDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows == false)
    {
        Response.Write("No rows");
    }
    if(dr.Read())
    {
        // WHAT TO CODE HERE?
    }
}

请任何人帮我填写代码 WHAT TO CODE HERE 部分。

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/6878161/…
  • 你需要把图片转换成byte[]数组..
  • “二进制”是一种编码,而不是一种格式。有许多不同的二进制编码;您的数据库使用哪一个? JPEG、PNG、GIF、BMP 等。是格式。你想输出什么格式?
  • 您的 Web 应用程序不需要将二进制字节流转换为图像。浏览器就是这样做的。您需要做的就是返回具有正确内容类型的流,其余的由浏览器完成。

标签: c# asp.net


【解决方案1】:

如果你修改这个方法,它应该可以解决问题:

        public BitmapImage ConvertToImage(System.Data.Linq.Binary binary)
    {
        byte[] buffer = binary.ToArray();
        MemoryStream stream = new MemoryStream(buffer);
        BitmapImage image = new BitmapImage();
        image.BeginInit();
        image.StreamSource = stream;
        image.EndInit();
        return image;
    }

【讨论】:

  • 或者如果他不明白他可以查看此链接以了解如何从数据库中流式传输图像 ..aspsnippets.com/Articles/…
  • 我收到BitmapImage 的错误,您是否缺少参考资料?
  • 哎呀,别以为你可以在 asp.net 中使用 BitmapImage。据我所知,它是 PresentationCore.dll 的一部分...试试上面写着“剩下的就是小菜一碟”的部分aspfree.com/c/a/ASP.NET/…
【解决方案2】:

从添加引用中添加“PresentationCore” dll 以获取引用的 System.Windows.Media.Imaging dll 以消除丢失的 ref 错误...:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多