Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Bitmap lässt sich nicht speichern
thepaul
myCSharp.de - Member



Dabei seit:
Beiträge: 151
Herkunft: Jena

Themenstarter:

Bitmap lässt sich nicht speichern

beantworten | zitieren | melden

Hey,
ich habe nen ganz einfachen Code:

 string filename = string.Format ("image{0}.png", i);
                    Log.Debug (filename);
                    tmp.Save (filename, System.Drawing.Imaging.ImageFormat.Png);

Dabei bekomme ich allerdings ne Exception:
Zitat
ArgumentException wurde nicht behandelt: ungültiger Parameter.

Mehr infos gibts nciht und ich hab jetzt schon ewig rumprobiert und im Netz gesucht.

Habt ihr vlt ne Idee woran das liegen könnte?
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.865
Herkunft: Waidring

beantworten | zitieren | melden

Hallo,

wie erstellst du das Bild?
Wenn das aus nem anderen Bild geladen wird das kein PNG ist dann kanns das sein.

Was ist wenn du das ImageFormat nicht angibst?


mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers
thepaul
myCSharp.de - Member



Dabei seit:
Beiträge: 151
Herkunft: Jena

Themenstarter:

beantworten | zitieren | melden

Das Bild ist eigentlich ein Screenshot, zu Testzwecken wird es aber aus einer png-Datei geladen. Daran liegt also cicht.


Was mir gerade auffällt.

Ich benutze das Bitmap vorher in einem using-Block. Der gibt ja normalerweise hinterher die Resourcen frei. Könnte das das Problem sein?
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Zitat
Könnte das das Problem sein?
Ja, sogar ziemlich sicher.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
thepaul
myCSharp.de - Member



Dabei seit:
Beiträge: 151
Herkunft: Jena

Themenstarter:

beantworten | zitieren | melden

Ich hab das using jetzt weggemacht aber es geht immer noch nicht.

Ich habe das ganze nochmal vereinfacht, vlt sieht jemand jetzt den Fehler:


var prov = new ScreenshotImageProvider (handle);

            for (int i = 0; i < 100; i++)
            {
                var b = prov.NextImage ();
                var file = path + "image" + i + ".bmp";
                b.Save (file);

                Thread.Sleep (300);
            }

gibt:
Allgemeiner fehler in GDI+.

Der Screenshot wird über

Graphics.CopyFromScreen (left, top, 0, 0, new Size (width, height));
erzeugt.
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.865
Herkunft: Waidring

beantworten | zitieren | melden

Hallo,

verwende statt dem Thread.Sleep lieber einen Timer und bauen den Dateinamen mit den Methoden der Path-Klasse zusammen (Path.Combine). Ich denke dass der Fehler vom (falschen) Dateinamen kommt. Wie schaut ein solcher zB aus (aus dem Debug kopieren und posten ;-)?


mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers