Ho utilizzato i metodi ImageIO.read() e ImageIO.write() in javax.imageio.ImageIO per leggere e scrivere immagini, e ho scoperto che il colore di alcune immagini viene modificato in modo strano.il colore dell'immagine jpeg viene drasticamente modificato dopo solo ImageIO.read() e ImageIO.write()
Anche se cambio il mio codice per non fare altro che leggere le immagini e scriverle (con jpeg, png, gif), tutte quelle nuove immagini hanno lo stesso problema.
Devo aggiungere altro codice prima/dopo i metodi ImageIO.read/write?
Ecco il codice che ho usato:
File f = new File("obw.jpg");
BufferedImage bi = ImageIO.read(f);
FileOutputStream fos2 = new FileOutputStream("obw2.jpg");
ImageIO.write(bi, "JPG", fos2);
FileOutputStream fos3 = new FileOutputStream("obw3.gif");
ImageIO.write(bi, "GIF", fos3);
FileOutputStream fos4 = new FileOutputStream("obw4.png");
ImageIO.write(bi, "PNG", fos4);
Il mio ambiente:
java version "1.6.0_35"
MacOSX 10.8.2
Immagine originale:
Una delle immagini dopo lettura e scrittura:
Quale viene modificato o tutti? l'immagine originale è forse * corrotta *? –
http://stackoverflow.com/questions/2408613/problem-reading-jpeg-image-using-imageio-readfile-file – Lesto
Ho letto l'immagine originale e ho scritto immagini jpeg, png, gif e tutte e tre mostrano che l'obiwan verde ... c'è un modo per controllare se quell'immagine originale è corrotta? – UGO