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.