Not sure if this helps but here's another conversion program in Java which:
- uses AWT but not the toolkit part - supports GIFs - is relatively smart about keep the x/y ratio - would need a little conversion to work in memory without writing to/from disk Per Kreipke P.s. Can't remember where I found portions of this code snippet so I can't give credit where credit is due, my apologies to the original author. package org.onclave.util; import java.awt.Image; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.io.FileOutputStream; import javax.swing.ImageIcon; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class Thumbnail { public static void main(String[] args) { System.out.print("starting...\n"); createThumbnail(args[0], args[1], Integer.parseInt(args[2])); System.out.print("finished.\n"); System.exit(0); } /** * Reads an image in a file and creates * a thumbnail in another file. * @param orig The name of image file. * @param thumb The name of thumbnail file. * Will be created if necessary. * @param maxDim The width and height of * the thumbnail must * be maxDim pixels or less. */ public static void createThumbnail(String orig, String thumb, int maxDim) { try { // Get the image from a file. Image inImage = new ImageIcon(orig).getImage(); // Determine the scale. double scale = (double)maxDim / (double) inImage.getHeight(null); if (inImage.getWidth(null) > inImage.getHeight(null)) { scale = (double)maxDim / (double) inImage.getWidth(null); } // Determine size of new image. // One of them should equal maxDim. int scaledW = (int)(scale * inImage.getWidth(null)); int scaledH = (int)(scale * inImage.getHeight(null)); // Create an image buffer in which to paint on. BufferedImage outImage = new BufferedImage(scaledW, scaledH, BufferedImage.TYPE_INT_RGB); // Set the scale. AffineTransform tx = new AffineTransform(); // If the image is smaller than the desired image size, // don't bother scaling. if (scale < 1.0d) { tx.scale(scale, scale); } // Paint image. Graphics2D g2d = outImage.createGraphics(); g2d.drawImage(inImage, tx, null); g2d.dispose(); // JPEG-encode the image and write to file. OutputStream os = new FileOutputStream(thumb); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os); encoder.encode(outImage); os.close(); } catch (IOException e) { e.printStackTrace(); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]