// to convert image into thumbnail i used following code. But netbeans has given me following error ....wht i shud do???????? i m java beginner so plz explain in smooth way....
error is::::
Exception in thread "main" java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
at java.awt.image.BufferedImage.
code:
package demo;
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); }
}