void ReadImages(FloatPoint sizeRequest) { Global.cstat(ConsoleColor.Green, "Loading Thumbnails {0}", sizeRequest); foreach (FileInfo fi in Files) { if (Thumbnails.ContainsKey(fi)) { Thumbnails[fi].Dispose(); } if (Thumbnails.ContainsKey(fi)) { Thumbnails[fi] = null; } } Thumbnails.Clear(); int incr = 0; foreach (FileInfo fi in Files) { #if (CONSOLE) Global.stat("loading {0}", fi.Name); #endif System.Diagnostics.Debug.Print("loading {0}", fi.Name); using (Bitmap targetBitmap = new Bitmap(fi.FullName)) { // try { targetBitmap = new Bitmap(fi.FullName); } // catch { targetBitmap = new Bitmap(famfam_silky.error); } // is this necessary? //Application.DoEvents(); Point targetSize = FloatPoint.Fit( sizeRequest, targetBitmap.Size, 2 ); if (targetSize.X <= 0) { targetSize = sizeRequest; } if (targetSize.Y <= 0) { targetSize = sizeRequest; } Bitmap renderBitmap = new Bitmap(targetSize.X, targetSize.Y); using (Graphics g = Graphics.FromImage(renderBitmap)) { g.HighQuality(InterpolMax, targetBitmap); g.Clear(Color.Black); g.DrawImage(targetBitmap, 0, 0, targetSize.X, targetSize.Y); lock (threadLock) { try { Thumbnails.Add(fi, renderBitmap); } catch (Exception exception) { System.Diagnostics.Debug.Print("{0}", exception); } } } } OnThumbsUpdated(incr++); } }