Laden...

[erledigt] ExternalException (0x80004005) Image.Save()

Erstellt von Tiega vor 11 Jahren Letzter Beitrag vor 11 Jahren 4.647 Views
T
Tiega Themenstarter:in
16 Beiträge seit 2013
vor 11 Jahren
[erledigt] ExternalException (0x80004005) Image.Save()

Hallo liebe Leute,

bitte Steinigt mich nicht da ich mit diesem Leidigen Thema komme. Ich hab mich die letzen 2std durch zig Posts gelesen aber keiner hat mir geholfen.

Es geht um folgenden Code:


 while (reader1.Read())
                {
                    picBytes = null;
                    picBytes = (byte[])reader1.GetValue(0);
                    if (picBytes != null)
                    {
                        try
                        {
                            ms = new MemoryStream(picBytes, 0, picBytes.Length);
                            returnImage = Image.FromStream(ms, true);
                            returnImage.Save(@"C:\temp\" + array[2] + ".jpg");
                            returnImage.Dispose();
                            ms.Dispose();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e + array[2] + ".jpg");
                        }
                    }
                }
                reader1.Close();

Die meisten Fehler in den anderen Post sind ja entweder Rechte Probleme oder der Stream wird zu früh aufgelöst blablaa...

Aber das kann bei mir ja eigentlich nicht der Fall sein DENN, unter XP gibt es keine Probleme nur unter Win7 64bit. Zudem werden gefühlte 500 Bilder erstellt und 50 nicht.

Ich bin am Verzweifeln. Ich hab auch schon versucht vor dem Speichern den Stream in ein tmpImage zu lesen und diese tmpImage dann in returnImage zu speichern. Ändert aber leider nichts.

Der Fehler:> Fehlermeldung:

System.Runtime.InteropServices.ExternalException (0x80004005): Allgemeiner Fehler in GDI+.
bei System.Drawing.Image.Save(String filename.......) usw

5.658 Beiträge seit 2006
vor 11 Jahren

Hi Tiega,

die InnerException würde sicherlich die Erklärung beinhalten.

unter XP gibt es keine Probleme nur unter Win7 64bit

Klingt für mich nach einem Rechteproblem. Aber ich kann natürlich nicht sagen, ob es bei dir den entsprechenden Ordner überhaupt gibt, welcher Wert in array[2] drin steht, ob die Datei evtl. schon existiert usw. usf.

Merkwürdig finde ich aber an deiner Konstruktion, daß du zuerst ein Bild aus einem Byte-Array erstellst, und das dann in die Datei speicherst. Wäre es nicht sinnvoller, das Byte-Array ohne den Umweg über das Image-Objekt in die Datei zu schreiben?

Christian

Weeks of programming can save you hours of planning

T
Tiega Themenstarter:in
16 Beiträge seit 2013
vor 11 Jahren

Hallo Sparkle,

naja Rechte Problem kann ja eigentlich da wie schon gesagt der Großteil der Bilder ja erstellt wird und nur einige wenige nicht.

in array[2] steht nur die ID aus der DB.

GEPRIESEN SEI MrSparkle!!!!!!

man ey ich hab halt gegooglet wie man Bilder erstellt und dabei hat er mir halt nur den Umweg über das Image-Object vorgeschlagen.

Hätte ich gewusst das ich auch einfach File.WriteAllBytes nehmen kann 😄

DENN DAMIT KLAPPT ES OHNE PROBLEME!!! 😄:D

Vielen lieben danke 😄 ich hab echt den ganzen Tag da dran gesessen und versucht das zum laufen zu kriegen... Und dann ist die Lösung sooo simpel 😄