2 Stimmen

Erstellen einer Miniaturansicht aller Bilder in einem Ordner

Ich habe versucht, mit der Funktion Bitmap.GetThumbnailImage() Miniaturbilder für mehr als 20 Bilder in einem Ordner zu erzeugen. Ich konnte sehen, riesige Speicher-Spike durch die Anwendung, wenn es die folgende Prozedur tut (etwa 600.000K in Task-Manager mem Nutzung).

foreach (var image in ListOfImages)
{
    var thumbnailFolder = @"\thumb";
    var thumbnailFile = thumbnailFolder + "\\" + image.Name;

    if (!Directory.Exists(thumbnailFolder))
    {
        Directory.CreateDirectory(thumbnailFolder);
    }
    if (!File.Exists(thumbnailFile))
    {
        using (FileStream fs = new FileStream(image.FullName, FileMode.Open, FileAccess.Read))
        {
            Image origImage = Image.FromStream(fs);
            var thumbnail = origImage.GetThumbnailImage(90, 120, null, IntPtr.Zero);
            thumbnail.Save(thumbnailFile);
            thumbnail.Dispose();
            origImage.Dispose();
        }
    }
}

Gibt es eine Möglichkeit, diesen hohen Speicherbedarf für die Erstellung von Miniaturansichten zu reduzieren?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X