+ ImageIO.write(bufferedImage, "jpg", out);
+ out.close();
+ }
+
+ private static void makeGifThumbnail(
+ File inputFile, File outputFile, java.awt.Dimension preferredTargetDimensions) throws IOException {
+ ImageIcon imageIcon = new ImageIcon(IOHelper.getFileContents(inputFile));
+
+ final java.awt.Dimension sourceImageDimension = new java.awt.Dimension(
+ imageIcon.getIconWidth(), imageIcon.getIconHeight());
+
+ System.out.println("Source image dimensions:" + sourceImageDimension);
+
+ final java.awt.Dimension targetDimensions = getTargetThumbnailDimension(
+ sourceImageDimension, preferredTargetDimensions);
+
+ System.out.println("Desired target image dimensions:" + targetDimensions);
+
+ FileInputStream fiStream = new FileInputStream(inputFile);
+
+ ImageReader reader = ImageIO.getImageReadersByFormatName("gif").next();
+ ImageInputStream stream = ImageIO.createImageInputStream(inputFile);
+ reader.setInput(stream);
+
+ Utils.ImageFrame[] frames = Utils.readGIF(reader);
+ for (Utils.ImageFrame frame : frames) {
+ Image scaleImage = scaleImage(frame.image, targetDimensions.width, targetDimensions.height);
+ BufferedImage bimage = new BufferedImage(
+ targetDimensions.width, targetDimensions.height, BufferedImage.TYPE_INT_ARGB);
+ Graphics2D bGr = bimage.createGraphics();
+ bGr.drawImage(scaleImage, 0, 0, null);
+ bGr.dispose();
+ frame.image = bimage;