Click here to Skip to main content
6,595,444 members and growing! (21,204 online)
Email Password   helpLost your password?
Multimedia » GDI+ » General     Intermediate

Thumbnail Generator - An easy way to process thumbnails from a large amount of images

By Christian Ballerstaller

Thumbnail Generator application supporting a bunch of image file types (for both: source images and target thumbnails), fixed target image size as well as ratio calculation, and full internationalization.
C#.NET 1.0, Win2K, WinXP, Dev
Posted:9 Mar 2003
Views:154,064
Bookmarked:66 times
Announcements
Loading...
 
Search    
Advanced Search
Add to IE Search
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
11 votes for this article.
Popularity: 4.26 Rating: 4.09 out of 5
2 votes, 18.2%
1

2

3
2 votes, 18.2%
4
7 votes, 63.6%
5

Sample Image - ThumbGenerator/ThumbGenerator.png

Introduction

I have always had problems generating thumbnails from a large amount of images quickly and easily. Also standard graphic programs couldn't meet my needs - or it simply took too much time handling image after image.

Benefits

This Thumbnail Generator is qualified for generating thumbnails of images you are publishing on the Internet. Pre-generated thumbnails save you processor utilization and disk space (if you're generating thumbnails on the fly) - or user's time and money.

But also converting a large amount of images from one file format to another can be handled easily.

This project might also be an interesting starting point for Win Form rookies. Learn how forms, simple internationalization support and XML are working together! Just download the project source code, all source files are commented.

Supports

Image support

  • Different file formats (BMP, GIF, JPEG, PNG, TIFF) - for both: source images and target thumbnails
  • Self specified thumbnail image extensions
  • Preview of source images and output thumbnails (including information on width, height, ratio)
  • Fixed width, height as well as maintaining aspect ratio
  • Bilinear re-sampling

Generating a ListBox item:

/* Retrieve image to get it's infos */
Image LbxSourceImage = Image.FromFile(filesFromDialog[i]);
imgList.Images.Add(LbxSourceImage);


/* Calculate image ratio */
float Ratio=((float)LbxSourceImage.Width)/((float)LbxSourceImage.Height); 

/* Generates Listboxitem */
ImageListBoxItem lbxItem = new ImageListBoxItem(
    filesFromDialog[i].ToString()+                /* Filename */
    "\r\n"+txtWidth+LbxSourceImage.Width.ToString()+    /* Width    */
    ", "+txtHeight+LbxSourceImage.Height.ToString()+    /* Height   */
    ", "+txtRatio+Ratio.ToString(),i);            /* Ratio    */

lbxSource.Items.Add(lbxItem);

Multilingual support

Also full multilingual support for English and German language is provided. (Feel free to contribute other translations ;) )

Internationalization is managed via XML. All GUI texts are read on startup, from the application configuration file (of course the language can also be changed during a session). The project includes a collection of useful methods for processing XML documents. You can easily use them for your own applications.

The configuration file looks like:

<?xml version="1.0" encoding="UTF-16"?>
<!DOCTYPE Application SYSTEM "Config.dtd">
<Application>
  <Information>
    <Name>Thumbnail Generator</Name>
    <Version>0.8</Version>
  </Information>
  <StdLanguage Type="en"/>
  <Language Type="en">
    <Text GUIRelation="btnGenerateThumb">Generate Thumbnails -->

Within the application the language information is fetched via XPath. Sample calls:

XPathDocument XPathDoc = new XPathDocument(configFileName);
XPathNavigator nav     = XPathDoc.CreateNavigator();

gbxSource.Text = XmlManager.GetValueFromXPath(nav, 
          "/Application/Language[@Type='"+
          CurrentLang+"']/Text[@GUIRelation='gbxSource']");
gbxTarget.Text = XmlManager.GetValueFromXPath(nav, 
          "/Application/Language[@Type='"+
          CurrentLang+"']/Text[@GUIRelation='gbxTarget']");

History

  • 09. March 2003: Initial release. See section "Supports"

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Christian Ballerstaller


Member
Experience:
- Java
- C#
- XML, XSL, PHP, ASP, ASP.NET
- Server administration

- ASM, Visual Basic (poor)
- Linux (poor)

If you have any offers, questions, or project ideas please feel free to contact me.

If you experience any bugs in my software, please report them.

Thank you.
Occupation: Web Developer
Location: Germany Germany

Other popular GDI+ articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 19 of 19 (Total in Forum: 19) (Refresh)FirstPrevNext
Generalsending the Image to another function Pinmemberdogmatic693:43 7 Nov '07  
GeneralHere's the spanish translation and some comments Pinmemberbauersachs4:08 11 Dec '06  
Generaldelete files that add to imageList box Pinmembernazli4:22 28 Aug '06  
QuestionHELPPPPPPPPPPPPP Pinmemberseapigg7:47 16 Jul '06  
Generaluse ratio to make images look better Pinmemberdjohnson1493:55 6 Dec '05  
GeneralI-Load - thumbnail generator free component Pinmemberzioturo1:59 3 Nov '05  
GeneralA generic error occurred in GDI+ PinmemberPaul Novelli7:11 9 Jul '05  
GeneralRe: A generic error occurred in GDI+ Pinmemberdogmatic693:25 7 Nov '07  
Generalsource of the dll?? Pinmembermistery229:51 18 Oct '03  
GeneralCannot find file exception PinsussC# Beginner18:48 20 Apr '03  
GeneralControls library? PinmemberTodd Smith5:20 11 Mar '03  
GeneralRe: Controls library? Pinmemberperlmunger10:53 11 Mar '03  
GeneralRe: Controls library? PinmemberChristian Ballerstaller11:06 11 Mar '03  
Generalirfanview PinmemberLoneRanger22:28 10 Mar '03  
GeneralRe: irfanview PinmemberChristian Ballerstaller11:12 11 Mar '03  
GeneralRe: irfanview Pinmemberjstephenson177116:23 22 Jan '04  
GeneralRe: irfanview PinmemberTodd C. Gleason14:51 16 Nov '04  
GeneralRe: irfanview PinmemberRowland Shaw4:14 29 Dec '05  
GeneralRe: irfanview PinmemberDermot O S2:29 26 Oct '07  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 9 Mar 2003
Editor: Smitha Vijayan
Copyright 2003 by Christian Ballerstaller
Everything else Copyright © CodeProject, 1999-2009
Web12 | Advertise on the Code Project