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