Dieser simple Code verursacht eine "Generic GDI+ Error" beim img.Save Aufruf, und ich hab keine Ahnung wie ich das umgehen kann:
string fileName = @"C:\Temp\MyScans\Merged.tif";
FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Image img = Image.FromStream(stream);
stream.Close();
stream.Dispose();
System.IO.File.Delete(fileName);
img.Save(@"c:\temp\MyScans\Test.tif");
Sinn der Sache ist es, ein Image zurückzugeben über ein Event. Und wenn man dann diese Image speichern will, so schlägt das wegen besagter Fehlermeldung fehl.
Ich wills nicht verstehen. Das File.Delete klappt. Ein dirketes Zuordnen an eine PictureBox mittels myPicBox.Image = img; klappt auch. Aber das Speichern will nicht.
Und die Verweise hier im Forum nach "Generic GDI+ Error" haben mir auch nicht weitergeholfen...
Ich bin grad ein bischen ratlos?
Ok, so wie es aussieht liegt es am Image File selbst. Es handelt sich dabei nämlich um ein Tif Bild mit mehreren Seiten. Wie es scheint hat das Image Objekt Probleme dieses Format zu handeln, denn wenn ich mit einem normalem einfachen Bild probiere, dann klappt die Routine.
Ich werde mir also wohl alles in ein Stream legen um später damit zu arbeiten und eventuell als Datei abzulegen.
Hallo Jelly,
der stream darf nicht geschlossen werden, denn dann 'funktioniert' das Image nicht mehr richtig. Bei kleinen Bildern klappt es manchmal. Wahrscheinlich weil es zwischengespeichert ist und kein Zugriff mehr auf den Stream erfolgt...
Bei großen Bildern gibt es aber Probleme, da dort immer wieder auf den Stream zugegriffen wird.
Gruß
T-Man
Habs jetzt umgestellt, so dass ich den Dateiinhalt in ein MemoryStream kopiere. Im Event kann ich dann damit anstellen was ich möchte. Die Datei wird nicht mehr benötigt.