Olá!
Eu estou salvando minhas imagens em forma de arquivos em um diretório. Estava usando o FileItem.write(file) para escrever-las. Funciona perfeitamente, pois é possível salvar qualquer formato de arquivos com essa API. No entanto agora vou converter todos os formatos de imagens para jpg e estou usando o ImageIO.write(imagem, “jpg”, ).new File(diretorio)
BufferedImage imagem1=ImageIO.read(fileItem.getInputStream());
BufferedImage imagem2=new BufferedImage(imagem1.getWidth(), imagem1.getHeight(), BufferedImage.TYPE_INT_RGB);
imagem2.createGraphics().drawImage(imagem1,0,0,Color.WHITE,null);
ImageIO.write(imagem2, "jpg", new File("diretorioqualquer/imagem.jpg"));
O problema é que qualquer imagem recebida pelo FileItem que não seja do formato jpg, inverte as cores ao salvar-la. O estranho é que se pegar a imagem direto do seu diretorio sem o FileItem.getInputStreamm e converter usando o metodo main, ela é convertida normalmente.
Alguém sabe como resolver isso?