Wie kann ich binden ein Byte-array in ein Bild, das in WPF mit einem Wert Konverter?

Ich versuche zu binden, ein Byte-array aus meiner Datenbank zu einer WPF-Bild.

Meiner XAML:

<Window.Resources>
    <local:BinaryImageConverter x:Key="imgConverter" />
</Window.Resources>
...
<Image Source="{Binding Path=ImageData, Converter={StaticResource imgConverter}}" />

Habe ich geändert-code veröffentlicht von Ryan Cromwell für einen Wert Konverter:

Class BinaryImageConverter
    Implements IValueConverter
    Private Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert
        If value IsNot Nothing AndAlso TypeOf value Is Byte() Then
            Dim bytes As Byte() = TryCast(value, Byte())
            Dim stream As New MemoryStream(bytes)
            Dim image As New BitmapImage()
            image.BeginInit()
            image.StreamSource = stream
            image.EndInit()
            Return image
        End If
        Return Nothing
    End Function
    Private Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
        Throw New Exception("The method or operation is not implemented.")
    End Function
End Class

Den ichmage.EndInit() Linie der BinaryImageConverter die Convert () - Funktion löst diese NotSupportedException:

"Keine imaging-Komponente geeignet,
diesen Vorgang gefunden."

InnerException: "Ausnahme von
HRESULT: 0x88982F50"

Verstehe ich nicht, was ich falsch mache. Wie bekomme ich diese zu arbeiten?


Update

Es scheint, das problem war die bytes kommen aus der Datenbank. Es muss ein problem mit der Art, wie ich war, indem man Sie in.

Meine Arbeit code unten.

InformationsquelleAutor Zack Peterson | 2009-03-26

Schreibe einen Kommentar