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?