- }
-
- public static void makeThumbnail(final File inputFile,
- final File outputFile,
- final java.awt.Dimension preferredTargetDimensions) {
-
- try {
-
- final BufferedImage inputImage = Utils.getBufferedImage(inputFile);
-
- final java.awt.Dimension sourceImageDimension = new java.awt.Dimension(
- inputImage.getWidth(), inputImage.getHeight());
-
- final java.awt.Dimension targetDimensions = getTargetThumbnailDimension(
- sourceImageDimension, preferredTargetDimensions);
-
- final OutputStream out = new FileOutputStream(outputFile);
-
- final Image scaledImage = scaleImage(inputImage,
- targetDimensions.width, targetDimensions.height);
-
- final BufferedImage bufferedImage = new BufferedImage(
- scaledImage.getWidth(null), scaledImage.getHeight(null),
- BufferedImage.TYPE_INT_RGB);
-
- final Graphics2D g = bufferedImage.createGraphics();
- g.drawImage(scaledImage, 0, 0, null);
- g.dispose();
-
- ImageIO.write(bufferedImage, "jpg", out);
- out.close();
-
- } catch (final Exception exception) {
- System.out.println(exception.toString());
- exception.printStackTrace();
- }
- }
-
- /**
- * @return new image scaled to desired dimensions
- */
- public static Image scaleImage(final Image srcImage, final int width,
- final int height) {
-
- ImageFilter filter;
- filter = new java.awt.image.AreaAveragingScaleFilter(width, height);
-
- final ImageProducer prod = new FilteredImageSource(
- srcImage.getSource(), filter);
-
- final Image newImage = Toolkit.getDefaultToolkit().createImage(prod);
-
- final ImageIcon imageIcon = new ImageIcon(newImage);
- return imageIcon.getImage();
- }
-
- private static final long serialVersionUID = -4156533490858298387L;;
-
- /**
- * Picture dimensions.
- */
- private Dimension dimensions;