2010-03-09 6 views
7

Gibt es eine Möglichkeit in C#, diese Konvertierung und zurück zu tun?Konvertieren von System.Drawing.Image in System.Windows.Controls.Image?

Ich habe eine WPF-App, die eine Bildkontrolle hat. Ich versuche, das Bild in diesem Steuerelement in einer SQL-Datenbank zu speichern.

In meinem Entitätsmodell ist der Datentyp der Bildspalte in meiner Datenbank ein byte[]. Also habe ich eine Methode gefunden, um ein System.Drawing.Image in ein byte[] und zurück zu konvertieren. Aber ich habe keine Methode gefunden, um von System.Windows.Controls.Image zu byte[] zu konvertieren.

Deshalb muss ich jetzt die obige Umwandlung tun.

Antwort

3

Nun, man ist ein Bild und man ist ein Steuerelement, das ein Bild zeigt, also glaube ich nicht, dass es eine Konvertierung zwischen den beiden gibt. Aber Sie könnten die Quelle der ... Controls.Image als Ihre ... Drawing.Image festlegen.

bearbeiten basierend auf Update

das tut, was Sie brauchen - http://msdn.microsoft.com/en-us/library/ms233764%28VS.100%29.aspx

+0

Kann das auch nicht ... irgendeine Idee? –

+0

Können Sie weitere Details zu Ihrem Szenario angeben? Mir fällt es schwer zu verstehen, warum du das tun musst. –

+0

siehe oben für weitere Details –

10

Wenn Sie ein Byte-Array haben, das eine Datei darstellt, die WPF dekodieren kann (bmp, jpg, gif, png, tif , ico), können Sie folgendes tun:

:

BitmapSource LoadImage(Byte[] imageData) 
{ 
    using (MemoryStream ms = new MemoryStream(imageData)) 
    { 
     var decoder = BitmapDecoder.Create(ms, 
      BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad); 
     return decoder.Frames[0]; 
    } 
} 

Ebenso ist es zurück zu konvertieren, können Sie folgendes tun

+0

hast du mein Leben gerettet – joshua

Verwandte Themen