package com.usemodj.struts; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; public class CreateThumbnail { public static final int VERTICAL = 0; public static final int HORIZONTAL = 1; public static final String IMAGE_JPEG = "jpeg"; public static final String IMAGE_JPG = "jpg"; public static final String IMAGE_PNG = "png"; private ImageIcon image; private ImageIcon thumb; public CreateThumbnail(Image image) { this.image = new ImageIcon(image); } public CreateThumbnail(String fileName) { image = new ImageIcon(fileName); } public Image getThumbnail(int size, int dir) { if (dir == HORIZONTAL) { thumb = new ImageIcon( image.getImage().getScaledInstance( size, -1, Image.SCALE_SMOOTH) ); } else { thumb = new ImageIcon( image.getImage().getScaledInstance( -1, size, Image.SCALE_SMOOTH) ); } return thumb.getImage(); } public Image getThumbnail(int size, int dir, int scale) { if (dir == HORIZONTAL) { thumb = new ImageIcon( image.getImage().getScaledInstance(size, -1, scale) ); } else { thumb = new ImageIcon( image.getImage().getScaledInstance(-1, size, scale) ); } return thumb.getImage(); } public void saveThumbnail(File file, String imageType) { if (thumb != null) { BufferedImage bi = new BufferedImage( thumb.getIconWidth(), thumb.getIconHeight(), BufferedImage.TYPE_INT_RGB ); Graphics g = bi.getGraphics(); g.drawImage(thumb.getImage(), 0, 0, null); try { ImageIO.write(bi, imageType, file); } catch (IOException ioe) { System.out.println("Error occured saving thumbnail"); } } else { System.out.println("Thumbnail has not yet been created"); } } public static void main(String [] args) { CreateThumbnail ct = new CreateThumbnail("image.jpg"); ct.getThumbnail(100, CreateThumbnail.HORIZONTAL); ct.saveThumbnail(new File("thumb.jpg"), CreateThumbnail.IMAGE_JPEG); } }