请教java图片等比压缩的问题

我现在在做一个相册

对图片压缩的要求挺高的,项目中要求不能用com.sun.image.codec.jpeg里面的类

那位高手有好的实现方法,请指点
问题补充:
单纯的改变尺寸没有问题

关键是改变尺寸后图片的质量太差

试过好多种方式jdk提供的都效果不好,有太多的毛刺
问题补充:
请问srcImageInfo是个什么对象?
问题补充:
我现在在做一个相册


对图片压缩的要求挺高的,项目中要求不能用com.sun.image.codec.jpeg里面的类


那位高手有好的实现方法,请指点
问题补充:
单纯的改变尺寸没有问题


关键是改变尺寸后图片的质量太差


试过好多种方式jdk提供的都效果不好,有太多的毛刺
问题补充:
请问srcImageInfo是个什么对象?

jimi的包能共享一下吗?我想噢那个sun网站上下的有很多错误,缺少一些类

多说了..你加我的MSN: wangxuliangboy@hotmail.com
我直接把代码给你..

ImageIO.write(image.getImages()[0], getFileExtends(imageFile), imageFile);

用ImageIO一样可以写图片..

// 获得宽度压缩比例和高度压缩比例
if (newWidth != 0) {
widthRate = (float) srcImageInfo.getWidth() / (float) newWidth;
}

            if (newHeight != 0) {
                heightRate = (float) srcImageInfo.getHeight() / (float) newHeight;
            }

            if (log.isDebugEnabled()) {
                log.debug(widthRate + ":" + heightRate);
            }

            // 根据高和宽的压缩比例,调整高宽度
            if (widthRate >= heightRate) {
                newHeight = (int) (srcImageInfo.getHeight() / widthRate);
            } else {
                newWidth = (int) (srcImageInfo.getWidth() / heightRate);
            }

// 以最清晰的方式压缩图片.会损失一些性能
BufferedImage[] srcImages = srcImageInfo.getImages();
BufferedImage[] destImages = new BufferedImage[srcImages.length];
for (int i = 0; i < destImages.length; i++) {
destImages[i] = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = destImages[i].getGraphics();

                           g.drawImage(srcImageInfo.getImage(i), 0, 0, newWidth, newHeight, null);

            }
            g.dispose();
        }

srcImageInfo 只是我们自己封装的一个对象..你加我MSN吧..我把包直接给你算啦..
wangxuliangboy@hotamil.com

jimi应该可以帮到你