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;
>>> >    }
>>> > }
>>>
>>
>>
>

Reply via email to