When I was working the update for my Ajax demo, I needed to create thumb nail from a director of photos. There are tons of tools out there to do this, but I thought I'd share the very simple code I used.
It takes all the jpgs in the root path and creates 160x120 thumbnails of them. It also copies the original photo into fullpath.
namespace ThumbNailer { class Program { static void Main(string[] args) { string rootPath = @"C:\Users\brada\Desktop\ForDemo"; string thumbPath = Path.Combine(rootPath, "Thumb"); if (Directory.Exists(thumbPath)) DirectoryDelete(thumbPath); Directory.CreateDirectory(thumbPath); int imageNumber = 0; foreach (string s in Directory.GetFiles(rootPath, "*.jpg")) { imageNumber++; Console.WriteLine("{0}:{1}", imageNumber, s); Image i = Image.FromFile(s); Image thumb = i.GetThumbnailImage(160, 120, null, IntPtr.Zero); thumb.Save(Path.Combine(thumbPath, GetName(imageNumber))); } } static void DirectoryDelete(string directoryName) { foreach (string filename in Directory.GetFiles(directoryName)) { File.Delete(filename); } Directory.Delete(directoryName); } static string GetName(int imageNumber) { return String.Format("{0}.jpg", imageNumber); } } }
Update: A couple of folks asked me about how to do this in ASP.NET... Bertrand has a much more complete example of that here:
http://dotnetslackers.com/articles/aspnet/Generating-Image-Thumbnails-in-ASP-NET.aspx
http://weblogs.asp.net/bleroy/archive/2007/12/05/what-interpolationmode-and-compositingquality-to-use-when-generating-thumbnails-via-system-drawing.aspx