Problemas com ImageIO.write + JPG

Boa tarde pessoal,

Estou mechendo em uma aplicação onde o usuário deve escolher o formato desejado (“png” ou “jpg”) em um JCombobox, para então salvar uma imagem.

As imagens salvas em formato png estão ok, mas quando é escolhido jpg, a imagem é salva em um tom avermelhado.

Segue o código que estou usando:

File f = new File (diretorio+nome_da_imagem+"."+extensao); try { BufferedImage bi = getMyImage(); ImageIO.write(bi, "jpg", f); } catch (IOException e) { ... }

Encontrei um site que comentava sobre a perca de qualidade ao utilizar ImageIO.write para salvar imagens jpg, e testei o código abaixo porém obtive o mesmo resultado (as imagens estão sendo salvas em tom avermelhado).

File f = new File (diretorio+nome_da_imagem+"."+extensao); try { BufferedImage bi = getMyImage(); Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName("jpg"); ImageWriter writer = (ImageWriter)iter.next(); ImageWriteParam iwp = writer.getDefaultWriteParam(); iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); iwp.setCompressionQuality(1); FileImageOutputStream output = new FileImageOutputStream(f); writer.setOutput(output); IIOImage image = new IIOImage(bi, null, null); writer.write(null, image, iwp); writer.dispose(); } catch (IOException e) { ... }

Qualquer sugestão será muito bem vinda. Desde já agradeço pela atenção. :wink:

Solução dada pelo amigo Cristian aqui - http://www.guj.com.br/posts/list/0/139318.java#990780