import java.awt.image.BufferedImage; import java.awt.Graphics2D; import java.awt.Color; import javax.imageio.ImageIO; import java.io.*; import java.util.Date; /* class for resizing images * */ public class Convert { static final int W = 0; // fixed witdh static final int H = 1; // fixed height static final int S = 2; // scale in percent static final int M = 4; // maximum of width and height static final boolean DEBUG = true; static PrintStream out = System.out; static java.text.DateFormat dformat = new java.text.SimpleDateFormat("yyyy-MM-dd-HH:mm"); private static boolean convert(File source, File target, double scale, int scaletype){ try{ BufferedImage img = ImageIO.read((source)); if(img==null){ return false; } File f = (target); // create the directory if needed: File p = f.getParentFile(); if(p!=null && p.isDirectory()){ p.mkdir(); } if(f.exists()){ return false; } int ow = img.getWidth(); int oh = img.getHeight(); if( (ow==0) || (oh==0)){ return false; } double factor = 1.0; switch(scaletype){ case W : { factor = scale / ow; break; } case H : { factor = scale / oh; break; } case S : { factor = scale / 100; break;} case M : { factor = scale / Math.max(ow,oh);break; } } // create the scaled version int h = (int) (oh*factor); int w = (int) (ow*factor); if(h<1) { h = 1; } if(w<1){ w = 1; } BufferedImage sc_img = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); Graphics2D g = sc_img.createGraphics(); g.drawImage(img,0,0,w,h,Color.WHITE,null); ImageIO.write(sc_img,"jpg",f); g.dispose(); return true; } catch(Exception e){ if(DEBUG){ e.printStackTrace(); } return false; } } private static void showUsage(){ System.err.println("java Convert