Ich versuche Bilder von der Festplatte zu laden (Größen von 30 bis 50 MB pro Stück) in einer Liste wie folgtSystem.OutOfMemoryException wenn mehrere große Bilder von der Festplatte geladen
var images = new List<Image>();
foreach (var imgPath in paths)
{
var img = Image.FromFile(imgPath);
images.Add(img);
}
Das Problem ist, dass nach dem ersten oder zweiten Bild erhalte ich eine
System.OutOfMemoryException
... meine Vermutung ist, dass die Bilder zu groß sind. Ich weiß, dass es eine gute Übung wäre, die Bilder einzeln zu verarbeiten, aber ich kann es nicht, da ich sie alle zu einem einzigen zusammenführen muss (wie eine Collage), und ich kann keine Vorschaubilder verwenden, weil ich es brauche respektiere die Originalgrößen.
Ich versuchte, die maxRequestLength
zu "10000000"
zu ändern, aber es war nutzlos.
Da ich den Bildverarbeitungsschritt nicht erreichen kann glaube ich nicht, dass ich ein Problem damit habe Objekte nicht zu entsorgen, zumindest noch nicht.
Gibt es eine Möglichkeit, den verfügbaren Arbeitsspeicher zu vergrößern, oder etwas in der Art?
P.S. Ich verwende das JPG-Format für Bilder.
Sind Sie sicher, dass es nach _ "das erste oder zweite Bild" _? _ "30 bis 50 MB pro Stück" _ - ist winzig. Wenn ich jetzt Google Chome anschaue, benutze ich ** 129 MB ** zum Vergleich. Haben Sie versucht, die Speicherverlust-Tools in VS auszuführen? – MickyD
Was hat 'maxRequestLength' zu tun mit _" Bilder von Diskette laden "_? – MickyD
Es gibt zu viele Variablen, die Ihnen helfen können, z. B. Hardwarekonfiguration, Betriebssystem, Anwendungstyp, Anwendungskonfiguration. Offensichtlich müssen Sie den für Ihre Anwendung verfügbaren Speicher vergrößern, aber es ist sehr schwierig zu sagen, wie dies zu erreichen ist. –