From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 src/com/gitblit/build/BuildThumbnails.java |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/src/com/gitblit/build/BuildThumbnails.java b/src/com/gitblit/build/BuildThumbnails.java
index f1bdbde..fe06c6c 100644
--- a/src/com/gitblit/build/BuildThumbnails.java
+++ b/src/com/gitblit/build/BuildThumbnails.java
@@ -22,6 +22,7 @@
 import java.io.FileOutputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
+import java.text.MessageFormat;
 import java.util.Iterator;
 
 import javax.imageio.ImageIO;
@@ -33,6 +34,12 @@
 import com.beust.jcommander.ParameterException;
 import com.beust.jcommander.Parameters;
 
+/**
+ * Generates PNG thumbnails of the PNG images from the specified source folder.
+ * 
+ * @author James Moger
+ * 
+ */
 public class BuildThumbnails {
 
 	public static void main(String[] args) {
@@ -47,10 +54,20 @@
 		createImageThumbnail(params.sourceFolder, params.destinationFolder, params.maximumDimension);
 	}
 
+	/**
+	 * Generates thumbnails from all PNG images in the source folder and saves
+	 * them to the destination folder.
+	 * 
+	 * @param sourceFolder
+	 * @param destinationFolder
+	 * @param maxDimension
+	 *            the maximum height or width of the image.
+	 */
 	public static void createImageThumbnail(String sourceFolder, String destinationFolder,
 			int maxDimension) {
-		if (maxDimension <= 0)
+		if (maxDimension <= 0) {
 			return;
+		}
 		File source = new File(sourceFolder);
 		File destination = new File(destinationFolder);
 		destination.mkdirs();
@@ -71,18 +88,18 @@
 					// Scale to Width
 					w = maxDimension;
 					float f = maxDimension;
-					h = (int) ((f / sz.width) * sz.height); // normalize height
+					// normalize height
+					h = (int) ((f / sz.width) * sz.height);
 				} else if (sz.height > maxDimension) {
 					// Scale to Height
 					h = maxDimension;
 					float f = maxDimension;
-					w = (int) ((f / sz.height) * sz.width); // normalize width
-				} else {
-					// No thumbnail
-					return;
+					// normalize width
+					w = (int) ((f / sz.height) * sz.width);
 				}
-				System.out.println("Generating thumbnail for " + sourceFile.getName() + " as (" + w
-						+ "," + h + ")");
+				System.out.println(MessageFormat.format(
+						"Generating thumbnail for {0} as ({1,number,#}, {2,number,#})",
+						sourceFile.getName(), w, h));
 				BufferedImage image = ImageIO.read(sourceFile);
 				Image scaledImage = image.getScaledInstance(w, h, BufferedImage.SCALE_SMOOTH);
 				BufferedImage destImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
@@ -98,6 +115,13 @@
 		}
 	}
 
+	/**
+	 * Return the dimensions of the specified image file.
+	 * 
+	 * @param file
+	 * @return dimensions of the image
+	 * @throws IOException
+	 */
 	public static Dimension getImageDimensions(File file) throws IOException {
 		ImageInputStream in = ImageIO.createImageInputStream(file);
 		try {
@@ -112,12 +136,16 @@
 				}
 			}
 		} finally {
-			if (in != null)
+			if (in != null) {
 				in.close();
+			}
 		}
 		return null;
 	}
 
+	/**
+	 * JCommander Parameters class for BuildThumbnails.
+	 */
 	@Parameters(separators = " ")
 	private static class Params {
 

--
Gitblit v1.9.1