* UPDATE (SM):
* This appears to be fixed on JDK 1.4
*/
private void convert(InputStream in, double w, double h, OutputStream out) throws IOException, ProcessingException {
try {
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
Raster original = decoder.decodeAsRaster();
JPEGDecodeParam decodeParam = decoder.getJPEGDecodeParam();
double ow = (double) decodeParam.getWidth();
double oh = (double) decodeParam.getHeight();
AffineTransformOp filter = new AffineTransformOp(getTransform(ow, oh, w, h), AffineTransformOp.TYPE_BILINEAR);
WritableRaster scaled = filter.createCompatibleDestRaster(original);
filter.filter(original, scaled);