c# WPF从Mysql显示图像

本文关键字:显示图 图像 显示 Mysql WPF | 更新日期: 2023-09-27 18:07:20

我是一名学生,我不擅长编程。我保存图像在我的mysql数据库为每个球员。我创建了一个程序,可以从我的数据库中列出一些足球运动员。当我点击数据网格中列出的球员时,会出现一个新窗口,显示有关该球员的信息。一切工作,但现在我想要从数据库的信息窗口显示所选球员的图片。有人能帮帮我吗?我的英语不是最好的(我17岁),所以我希望你能理解我的意思。

这就是我想做的,但我不知道如何继续。PS:它在WPF中。

 MySqlCommand cmd = new MySqlCommand("SELECT Bilder FROM spieler WHERE Bilder='{8}'");
        MySqlDataReader rdr1 = cmd.ExecuteReader();
        try
        {
            conn.Open();
            while (rdr1.Read())
            {
                // image1... I don't know what to write here
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Fehler: " + ex);
        }
        rdr1.Close()

c# WPF从Mysql显示图像

只需事先使用byte[]强制转换即可:

while (rdr1.Read())
{
   byte[] data = (byte[])reader[0]; // 0 is okay if you only selecting one column
   //And use:
   using (System.IO.MemoryStream ms = new System.IO.MemoryStream(data))
   {
      Image image = new Bitmap(ms);
   }
}

更新:在WPF中,使用BitmapImage:

using (System.IO.MemoryStream ms = new System.IO.MemoryStream(data))
{
    var imageSource = new BitmapImage();
    imageSource.BeginInit();
    imageSource.StreamSource = ms;
    imageSource.CacheOption = BitmapCacheOption.OnLoad;
    imageSource.EndInit();
    // Assign the Source property of your image
    yourImage.Source = imageSource;
}

保存图像的列类型是什么?你可以试试这样写

Image tmp = ImageConverter.ConvertFrom(rdr1.GetStream("photo"));

where photo is your column name