Beantwortet Bild aus Datenbank in WPF Image

  • Mittwoch, 2. Januar 2013 10:09
     
     

    Guten Morgen zusammen,

    ich hätte da mal (wieder) eine Frage. Ich möchte aus einer DB  Bilder abrufen und diese dann in WPF Image darstellen.

    Mein Problem ist wie ich die Bilder dem Image übergebe, also ob ich das über ein Binding machen kann oder ob ich erst die Bilder aus der DB abrufen und umwandeln muss.

    Ich weiß nicht wie ich dem Image eine neu Uri geben kann, die von einer DB kommt

    Der Aufbau sieht so aus, das ich in einer ListBox eine Liste mit Namen der Bilder habe und ich würde gern wenn man ein Eintrag ausgewählt hat, dass das Bild in einem Image daneben angezeigt wird.

    Ich hoffe es ist einigermaßen nachvollziehbar was ich meine.

    Viele Grüße Jo


Alle Antworten

  • Donnerstag, 3. Januar 2013 09:50
     
     Beantwortet
    Nach langen hin und her habe ich eine Lösung gefunden
    • Als Antwort markiert Joachim Hiller Donnerstag, 3. Januar 2013 09:51
    •  
  • Donnerstag, 3. Januar 2013 10:07
    Moderator
     
      Enthält Code

    Hallo Joachim,

    Kannst Du das versuchen:

    Dim stream As New MemoryStream(Abfrage.First.Bi_Bild.ToArray))
    stream.Seek(0, SeekOrigin.Begin)

    Gruss,

    Ionut

  • Donnerstag, 3. Januar 2013 10:34
     
     
    Hi Joachim,
    ich hoffe, dass die Lösung nicht geheim bleiben muss.
     
    --
    Peter Fleischer
  • Freitag, 4. Januar 2013 06:59
     
      Enthält Code

    Guten Morgen,

    nein die Lösung muss nicht geheim bleiben. Mein Fehler war schon beim abspeichern  von dem Bild. Ich habe das jetzt so gelöst:

    Dim nBild As New Bilder() Dim bytes() As Byte = File.ReadAllBytes(filepath) With nBild .Bi_Bild = bytes .Bi_FK_Stuecke = Stueck_ID .Bi_Info = Bildname End With 'Neues Bild in Collection einfügen
    ModVariable.N_Bilder.Add(nBild)

    Und zum abrufen eines Bilds verwende ich

    Dim Abfrage = From b In db.Bilder
                  Where b.Bi_ID = CType(lbBilder.SelectedItem, Bilder).Bi_ID
                  Select b
    
    Dim pic As New BitmapImage()
    pic.BeginInit()
    pic.StreamSource = New MemoryStream(Abfrage.First.Bi_Bild.ToArray())
    pic.EndInit()
    IMG.Source = pic

    Es ist bestimmt nicht die beste Lösung doch jetzt klappt es ohne Probleme

    Grüßle

    Jo