Laden...

Image to Bitmap

Erstellt von Coooder vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.021 Views
C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren
Image to Bitmap

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?

5.941 Beiträge seit 2005
vor 11 Jahren

Salute Coooder

Habs nicht probiert, aber das schaut doch vielversprechend aus:

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Z
403 Beiträge seit 2007
vor 11 Jahren

Hallo Coooder,

Leider klappts nich ...

Was ? Gibt es Fehler ?

Ansonsten: MSDN Bitmap Constructor

Edit: Peter war schneller 😉

André

S
269 Beiträge seit 2010
vor 11 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren

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

5.657 Beiträge seit 2006
vor 11 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren

hab ich da was falsch verstanden? oder hat vieleicht noch jemand nen Lösungsvorschlag? 😦

5.657 Beiträge seit 2006
vor 11 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren

System.Windows.Interop.InteropBitmap

habs mir in einer textbox ausgeben lassen

5.657 Beiträge seit 2006
vor 11 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren

ok geht nun, danke euch allen