Hallo,
ich versuche grad ein Bild welches mein Image-container anzeigt in ein Bitmap objekt zu packen. Leider klappts nich ... finde bei google auch nur beispiele um es genau anders rum zu machen 😕
kann mir da einer weiter helfen?
Salute Coooder
Habs nicht probiert, aber das schaut doch vielversprechend aus:
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Hallo Coooder,
Leider klappts nich ...
Was ? Gibt es Fehler ?
Ansonsten: MSDN Bitmap Constructor
Edit: Peter war schneller 😉
André
Das Problem hier ist, so nehme ich an, dass es sich bei dem Bild im genannten image container ja um ein BitmapImage-Objekt handelt, welches nicht einfach (so hab ich das zumindest in Erinnerung) mal eben in ein System.Drawing.Bitmap gewandelt werden kann.
Sollten bis hier meine Vermutungen stimmen, so habe ich folgendes Quelltext-Snippet gefunden:
BitmapImage bitmapSource;
using(MemoryStream outStream = new MemoryStream())
{
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(bitmapSource));
enc.Save(outStream);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(outStream);
}
(Quelle: social.msdn.microsoft.com - Bitmap<->BitmapImage conversion)
hoffe, dass das weiterhilft
so far
Karill Endusa
danke erstma für eure antworten
scheint beides nich so zu klappen, in meinem ImageContainer habe ich eine
System.Windows.Media.ImageSource
zur verfügung. Leider kein BitmapImage oder
System.Drawing.Image
😕
es scheint auch so erstmal keine umwandlungsmethode zu geben
in meinem ImageContainer habe ich eine System.Windows.Media.ImageSource
ImageSource ist eine abstrakte Klasse, also kann dein Objekt auch nicht von diesem Typ sein. Sicherlich handelt es sich um ein System.Windows.Media.Imaging.BitmapImage-Objekt, oder etwas vergleichbares. Dieses kannst du dann in einen Stream schreiben, um daraus ein System.Drawing.Image zu erstellen, wie es Karill Endusa beschrieben hat.
Christian
Weeks of programming can save you hours of planning
ich habs doch versucht
encoder.Frames.Add(BitmapFrame.Create(screenshotImg.Source));
hier macht er aber den fehler> Fehlermeldung:
1-Argument: Kann nicht von "System.Windows.Media.ImageSource" in "System.Windows.Media.Imaging.BitmapSource" konvertiert werden
hab ich da was falsch verstanden? oder hat vieleicht noch jemand nen Lösungsvorschlag? 😦
Hi Coooder,
dann wäre es hilfreich, wenn du uns sagen könntest, von welchen Typ dein ImageSource-Objekt ist. Das kannst du sehr einfach mit dem Debugger oder mit der typeof
-Anweisung herausbekommen.
Christian
Weeks of programming can save you hours of planning
System.Windows.Interop.InteropBitmap
habs mir in einer textbox ausgeben lassen
System.Windows.Interop.InteropBitmap
InteropBitmap erbt von BitmapSource, daher sollte eine Umwandlung nicht die von dir angegebene Exception auslösen. Das Beispiel von Karill Endusa sollte also auch für InteropBitmaps funktionieren. Dazu gibt es auch einen Beitrag bei StackOverflow: WPF: System.Windows.Interop.InteropBitmap to System.Drawing.Bitmap.
habs mir in einer textbox ausgeben lassen
Warum einfach, wenn's auch kompliziert geht? Einfacher wäre gewesen, einen Breakpoint auf die entsprechende Code-Zeile zu setzten und dann den Mauszeiger über den Bezeichner halten, bis die Infos angezeigt werden.
Christian
Weeks of programming can save you hours of planning
ok geht nun, danke euch allen