Erro ao resimensionar imagem

Pessoal, não estou conseguindo resimensionar uma imagem.

Exception: IllegalArgumentException ““SubsampleAverage” operation`s value for parameter “scaleX” is invalid.”

RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_RENDER_QUALITY);
imagem = JAI.create("SubsampleAverage", pb, qualityHints); // essa linha lança a exception

Agradeço se alguem puder ajudar.

att,

http://blogs.warwick.ac.uk/mmannion/entry/using_subsample_averaging/

Cara não encontrei o que estou fazendo de errado.

segue meu código mais completo.

PlanarImage imagem = JAI.create("fileload", path);

            double newHeight = 0;
            double newWidth = 0;

            if(imagem.getWidth() > imagem.getHeight())
            {
                if(imagem.getWidth() > MAX_WIDTH)
                {
                    double constante = (double)imagem.getWidth() / MAX_WIDTH;

                    newHeight = imagem.getHeight() / constante;
                    newWidth = MAX_WIDTH;
                }
                else if(imagem.getWidth() < MAX_WIDTH)
                {
                    double constante = (double)imagem.getWidth() / MAX_WIDTH;

                    newHeight = imagem.getHeight() * constante;
                    newWidth = MAX_WIDTH;
                }
                else
                {
                    newHeight = imagem.getHeight();
                    newWidth = imagem.getWidth();
                }

            }
            else if(imagem.getWidth() == imagem.getHeight())
            {
                if(imagem.getWidth() > MAX_WIDTH)
                {
                    newHeight = MAX_HEIGHT;
                    newWidth = MAX_HEIGHT;
                }
            }
            else if(imagem.getWidth() < MAX_WIDTH && imagem.getHeight() < MAX_HEIGHT)
            {
                newHeight = imagem.getHeight();
                newWidth = imagem.getWidth();
            }
            else if(imagem.getWidth() < imagem.getHeight())
            {
                if(imagem.getHeight() > MAX_HEIGHT)
                {
                    double constante = (double)imagem.getHeight() / MAX_HEIGHT;

                    newWidth = imagem.getWidth() / constante;
                    newHeight = MAX_HEIGHT;
                }
                else if(imagem.getWidth() < MAX_WIDTH)
                {
                    double constante = (double)imagem.getWidth() / MAX_HEIGHT;

                    newWidth = imagem.getHeight() * constante;
                    newHeight = MAX_HEIGHT;
                }
                else
                {
                    newHeight = imagem.getHeight();
                    newWidth = imagem.getWidth();
                }
            }
            
            
            ParameterBlock pb = new ParameterBlock();
            pb.addSource(imagem);
            pb.add(newWidth);
            pb.add(newHeight);

            RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_RENDER_QUALITY);
            imagem = JAI.create("SubsampleAverage", pb, qualityHints);

            pb = new ParameterBlock();

            //É informado o local e o nome da nova imagem e o formato.
            pb.addSource(imagem);
            pb.add(name + "-thumb.jpg");
            pb.add("jpeg");
            JAI.create("filestore", pb);                   

Será que você não está se esquecendo de adicionar a parte da translação (0, 0)?

[quote=entanglement]Será que você não está se esquecendo de adicionar a parte da translação (0, 0)?

[quote]

ParameterBlock params = new ParameterBlock();
params.addSource(source);
params.add(scale);// x scale factor
params.add(scale);// y scale factor
params.add(0.0F);// x translate
params.add(0.0F);// y translate

[/quote][/quote]

Amigo, não é isso, também editei a linha imagem = JAI.create("SubsampleAverage", pb, qualityHints); // essa linha lança a exception para RenderedOp imgAlterada = JAI.create("SubsampleAverage", pb, qualityHints); e tbn continua dando o mesmo erro

Você copiou todos aqueles parâmetros mágicos daquele blog? às vezes ajuda

http://blogs.warwick.ac.uk/mmannion/entry/using_subsample_averaging/