About the Thumbs.db file... Well, I would recommend you to go to folder settings and hide system and important files :). About skinning the cat... I am always more happy if I make the application by myself, not to download some freeware. About error handling... I am used on this concept, just one try-catch clause in the Main body for code to be easily readable. It will also tell you if there is something wrong :).
2009/9/12 AstroDrabb <[email protected]> > No error handling. ;-) > > You pass the file to the resizeFile() method, however that method never > checks if it is a valid image file. What if there is one of those thumbs.db > files in the directory that I see all over image directories? > > Anyway, I think you are trying to skin a cat that has been skinned a > million times. > > Go to http://www.imagemagick.org/. This app has been around for ages and > is really great. You can script it or just use a command prompt or use it > in a program. > > Read the section at the link above named "Command-line Tools". It lists > all the command line tools that come with it and all the options. I put > this in my path on windows and can just open a command prompt and do all > kinds of good stuff. It runs on Linux, Mac, *nix and Windows. It is Open > and Free. > > The program you should read up first is "convert" or convert.exe on > Windows. I have used it tons of times to just process all the jpg files I > get off my camera. > > convert takes a -resize option and will preserve the aspect ratio. > > So you can just do: > > convert image1.jpg -resize '1024' image1.jpg > > This will take your image and make the width 1024 and the height will be > scaled properly. You can also use -resize '1024x110' or something if you > want a weird image. > > Jim > > On Fri, Sep 11, 2009 at 6:57 PM, Processor Devil < > [email protected]> wrote: > >> Hi man, thanks for the feedback :).Here is new version, you can specify >> just the height and width will be calculated automatically :) >> >> using System; >> using System.IO; >> using System.Drawing; >> >> namespace ThumbNail >> { >> class Program >> { >> static void Main(string[] args) >> { >> if(args.Length == 3) >> { >> try >> { >> Resizer rsz = new Resizer(args[0], int.Parse(args[2]), >> int.Parse(args[1])); >> rsz.ResizeImages(); >> } >> catch (Exception e) >> { >> Console.WriteLine(e.Message); >> } >> } >> else if (args.Length == 2) >> { >> try >> { >> Resizer rsz = new Resizer(args[0], >> int.Parse(args[1])); >> rsz.ResizeImages(); >> } >> catch (Exception e) >> { >> Console.WriteLine(e.Message); >> } >> } >> else >> Console.WriteLine("Usage:\n ThumbNail <directory> >> [target_width] <target_height>"); >> >> } >> } >> class Resizer >> { >> public Resizer(string directory, int height, int width) >> { >> this.directory = directory; >> this.height = height; >> this.width = width; >> this.proportions = false; >> } >> public Resizer(string directory, int height) >> { >> this.directory = directory; >> this.height = height; >> this.proportions = true; >> } >> public void ResizeImages() >> { >> if (Directory.Exists(this.directory)) >> { >> this.newDir = Path.Combine(this.directory, "thumbnails"); >> string[] files = Directory.GetFiles(this.directory); >> if (!Directory.Exists(newDir)) >> Directory.CreateDirectory(newDir); >> foreach (string file in files) >> { >> this.resizeFile(file); >> } >> } >> else >> { >> Console.WriteLine("Specified directory doesn't exist"); >> } >> } >> void calculateWidth(int oldHeight, int oldWidth, int newHeight) >> { >> int percentage = oldHeight / newHeight; >> int newWidth = oldWidth / percentage; >> this.width = newWidth; >> } >> bool problem() >> { >> Console.WriteLine("Problem with creating a thumbnail"); >> return false; >> } >> void resizeFile(string file) >> { >> Image img = Image.FromFile(file); >> if (this.proportions == true) >> this.calculateWidth(img.Height, img.Width, this.height); >> Image resized = img.GetThumbnailImage(this.width, this.height, >> new Image.GetThumbnailImageAbort(problem), IntPtr.Zero); >> string newName = string.Format("{0}_t{1}", >> Path.GetFileNameWithoutExtension(file), >> Path.GetExtension(file)); >> resized.Save(Path.Combine(this.newDir, newName)); >> Console.WriteLine("{0} --> {1}", Path.GetFileName(file), >> newName); >> >> } >> >> string directory; >> int height; >> int width; >> bool proportions; >> string newDir; >> } >> } >> >> >> 2009/9/11 Vitaly Maslevskiy <[email protected]> >> >>> >>> Problem of this prog, >>> >>> 1. it doesn't recognize portrait / landscape >>> 2. if params height and width not proportional to original image >>> thumbnails will look ugly :) >>> >>> vitaly >>> >>> >>> 2009/9/10 Processor-Dev1l <[email protected]>: >>> > >>> > Hi guys. I am just doing a business web page for my friends. Problem >>> > is they want about 200 pictures into galery (web page is html only) >>> > and one pic has about 5 MB. >>> > Because I didn't want to resize each picture I made this simple >>> > console application, I hope you will find it useful :) >>> > >>> > using System; >>> > using System.IO; >>> > using System.Drawing; >>> > >>> > namespace ThumbNail >>> > { >>> > class Program >>> > { >>> > static void Main(string[] args) >>> > { >>> > if (args.Length != 3) >>> > Console.WriteLine("Usage:\n ThumbNail <directory> >>> > <target_width> <target_height>"); >>> > else >>> > { >>> > try >>> > { >>> > Resizer rsz = new Resizer(args[0], int.Parse(args >>> > [2]), int.Parse(args[1])); >>> > rsz.ResizeImages(); >>> > } >>> > catch (Exception e) >>> > { >>> > Console.WriteLine(e.Message); >>> > } >>> > } >>> > } >>> > } >>> > class Resizer >>> > { >>> > public Resizer(string directory, int height, int width) >>> > { >>> > this.directory = directory; >>> > this.height = height; >>> > this.width = width; >>> > } >>> > public void ResizeImages() >>> > { >>> > string[] files = Directory.GetFiles(this.directory); >>> > string newDir = Path.Combine(this.directory, >>> > "thumbnails"); >>> > if (!Directory.Exists(newDir)) >>> > Directory.CreateDirectory(newDir); >>> > foreach (string file in files) >>> > { >>> > Image img = Image.FromFile(file); >>> > Image resized = img.GetThumbnailImage(this.width, >>> > this.height, >>> > new Image.GetThumbnailImageAbort(problem), >>> > IntPtr.Zero); >>> > string newName = string.Format("{0}_t{1}", >>> > Path.GetFileNameWithoutExtension(file), >>> > Path.GetExtension(file)); >>> > resized.Save(Path.Combine(newDir, newName)); >>> > Console.WriteLine("{0} --> {1}", Path.GetFileName >>> > (file), newName); >>> > } >>> > } >>> > bool problem() >>> > { >>> > Console.WriteLine("Problem with creating a thumbnail"); >>> > return false; >>> > } >>> > >>> > string directory; >>> > int height; >>> > int width; >>> > } >>> > } >>> >> >> >
