I hope this gives you an idea of where to start. This is what I based my code on...(thanks richard huss)
package uk.co.talyllyn.gallery;
import com.sun.image.codec.jpeg.*;
import java.io.*;
public class JPEGSizer extends AbstractSizer {
private JPEGDecodeParam params;
public JPEGSizer(
String filename) {
try {
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder
(new FileInputStream(filename));
decoder.decodeAsRaster();
params = decoder.getJPEGDecodeParam();
width = params.getWidth();
height = params.getHeight();
} catch (IOException e) {
width = 0;
height = 0;
}
}
public static void main(String args[]) throws Exception {
JPEGSizer sizer = new JPEGSizer(args[0]);
System.out.println("Width " + sizer.getWidth());
System.out.println("Height " + sizer.getHeight());
}
}
package uk.co.talyllyn.gallery;
import java.io.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
public class PhotoResizer {
private String oldFile, newFile;
public PhotoResizer(String oldFile, String newFile) {
this.oldFile = oldFile;
this.newFile = newFile;
}
public void writeScaledImage() {
try {
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder
(new FileInputStream(oldFile));
BufferedImage originalImage = decoder.decodeAsBufferedImage();
JPEGDecodeParam params = decoder.getJPEGDecodeParam();
int width = params.getWidth();
int height = params.getHeight();
double scale = 100.0 / width;
ColorModel cm = originalImage.getColorModel();
AffineTransform transform = AffineTransform.getScaleInstance(scale,scale);
AffineTransformOp scaler =
new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
BufferedImage scaledImage =
scaler.createCompatibleDestImage(originalImage, cm);
scaler.filter(originalImage, scaledImage);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder
(new FileOutputStream(newFile));
encoder.encode(scaledImage);
} catch (IOException e) {
System.out.println("Oops");
}
}
public static void main(String args[]) {
new PhotoResizer("\\Documents and Settings\\richard\\My Documents\\TR Web Site\\images\\jpeg\\" + args[0] + ".jpg",
args[0] + "_sml.jpg").writeScaledImage();
}
}