Basic Bild aus Datenbank (VB.Net / WPF)

Terson

Cadet 4th Year
Registriert
Okt. 2001
Beiträge
115
Ich stehe gerade völlig auf dem Schlauch. Ich bin im Bereich WPF noch sehr frisch dabei und komme aktuell nicht weiter. In einem früheren WinForm-Programm habe ich schon mal Bilder aus einer SQL-DB gelesen und in einer Picturebox dargestellt. Wie bekomme ich es hin, dass ich die Blob-Daten in ein WPF-Image Steuerelement bekomme?

Hier der Code wie ich es in Forms gelöst hatte:

Dim saveImage As IO.MemoryStream
Dim imgByte As Byte()



imgByte = DT_Masch.Rows(0).Item("Bild")
saveImage = New IO.MemoryStream(imgByte)
pb_Artikelbild.Image = Image.FromStream(saveImage)
 
Danke für die schnelle Antwort. Leider hänge ich noch immer ein wenig. Wie binde ich nun die image-Source an mein Steuerelement (Bild1)?

Dim image = New Image()
StackBild1.Visibility = Visibility.Visible
imgByte = dtBilder.Rows(0).Item("BILD")
saveImage = New MemoryStream(imgByte)
image.Source = BitmapFrame.Create(saveImage, BitmapCreateOptions.None, BitmapCacheOption.OnLoad)
Bild1.Source = ????
 
MVVM-Ansatz:

C#
Code:
       public BitmapSource ConvertByteArrayToImage([NotNull] byte[] image) {
            if (image == null) {
                throw new ArgumentNullException(nameof(image));
            }

            BitmapSource bitmapSource;

            using (Stream imageStreamSource = new MemoryStream(image)) {
                JpegBitmapDecoder decoder =
                        new JpegBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);

                bitmapSource = decoder.Frames[0];

                imageStreamSource.Close();
            }

            return bitmapSource;
        }
JpegBitmapDecoder ist aus System.Windows.Media.Imaging.

Im WPF
Code:
<Image Source="{Binding BitmapSource}" />
BitmapSource ist ein Property im ViewModel.

Ist natürlich jetzt ohne spezifisches Fehlerhandling.
 
Zurück
Oben