All pastes #748545 Raw Edit

Mine

public java v1 · immutable
#748545 ·published 2007-10-24 21:58 UTC
rendered paste body
import com.sun.image.codec.jpeg.*;import java.awt.*;import java.awt.image.*;import java.io.*;/** * Thumbnail.java (requires Java 1.2+) * Load an image, scale it down and save it as a JPEG file. * @author Marco Schmidt */public class Thumbnail {	  public static void main(String[] args) throws Exception {    if (args.length != 5) {      System.err.println("Usage: java Thumbnail INFILE " +        "OUTFILE WIDTH HEIGHT QUALITY");      System.exit(1);    }    // load image from INFILE    Image image = Toolkit.getDefaultToolkit().getImage(args[0]);    MediaTracker mediaTracker = new MediaTracker(new Container());    mediaTracker.addImage(image, 0);    mediaTracker.waitForID(0);    // determine thumbnail size from WIDTH and HEIGHT    int thumbWidth = Integer.parseInt(args[2]);    int thumbHeight = Integer.parseInt(args[3]);    double thumbRatio = (double)thumbWidth / (double)thumbHeight;    int imageWidth = image.getWidth(null);    int imageHeight = image.getHeight(null);    double imageRatio = (double)imageWidth / (double)imageHeight;    if (thumbRatio < imageRatio) {      thumbHeight = (int)(thumbWidth / imageRatio);    } else {      thumbWidth = (int)(thumbHeight * imageRatio);    }    // draw original image to thumbnail image object and    // scale it to the new size on-the-fly    BufferedImage thumbImage = new BufferedImage(thumbWidth,       thumbHeight, BufferedImage.TYPE_INT_RGB);    Graphics2D graphics2D = thumbImage.createGraphics();    graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,      RenderingHints.VALUE_INTERPOLATION_BILINEAR);    graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);    // save thumbnail image to OUTFILE    BufferedOutputStream out = new BufferedOutputStream(new      FileOutputStream(args[1]));    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);    JPEGEncodeParam param = encoder.      getDefaultJPEGEncodeParam(thumbImage);    int quality = Integer.parseInt(args[4]);    quality = Math.max(0, Math.min(quality, 100));    param.setQuality((float)quality / 100.0f, false);    encoder.setJPEGEncodeParam(param);    encoder.encode(thumbImage);    out.close();     System.out.println("Done.");    System.exit(0);  }}