Coooder
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?
TheGear
Hallo Coooder,
| Zitat: |
| Leider klappts nich ... |
Was ? Gibt es Fehler ?
Ansonsten:
MSDN Bitmap Constructor
Edit: Peter war schneller
André
Karill Endusa
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:
C#-Code: |
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
Coooder
danke erstma für eure antworten
scheint beides nich so zu klappen, in meinem ImageContainer habe ich eine
C#-Code: |
System.Windows.Media.ImageSource
|
zur verfügung. Leider kein BitmapImage oder
C#-Code: |
System.Drawing.Image
|
:/
es scheint auch so erstmal keine umwandlungsmethode zu geben
MrSparkle
| Zitat von Coooder: |
| 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
Coooder
ich habs doch versucht
C#-Code: |
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 |
Coooder
hab ich da was falsch verstanden? oder hat vieleicht noch jemand nen Lösungsvorschlag? :(
MrSparkle
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
Coooder
System.Windows.Interop.InteropBitmap
habs mir in einer textbox ausgeben lassen
MrSparkle
| Zitat von Coooder: |
| 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.
| Zitat von Coooder: |
| 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
Coooder
ok geht nun, danke euch allen