Thumbnail Tools
//package org.imogene.web.server.util;
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 ThumbnailTools {
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 ThumbnailTools(Image pImage) {
image = new ImageIcon(pImage);
}
public ThumbnailTools(String fileName) {
image = new ImageIcon(fileName);
}
/**
* Create a thumbnail for the current image
* @param size the size
* @param dir the direction, Horizontal or Vertical
* @return the thumbnail image
*/
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();
}
/**
* Create a thumbnail for the current image
* @param size the size
* @param dir the direction, Horizontal or Vertical
* @param scale the scale
* @return the thumbnail image
*/
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();
}
/**
* Save the thumbnail to the specified file, with the specified type
* @param file the file
* @param imageType the image type
*/
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) {
throw new RuntimeException("Error occured saving thumbnail");
}
} else {
throw new RuntimeException("Thumbnail have to be created before.");
}
}
}
Related examples in the same category