[java] Problema linee anomale durante salvat immagini
Ciao a tutti, ho un problema abbastanza strano durante il salvataggio delle
immagini in formato jpg.
Nel programma che sto scrivendo devo agiiungere una barra colorata a fianco di
immagini di alcuni articoli prodotti dalla mia azienda in funzione delle variati
presenti in un database per quell'articolo. Quello che faccio è:
+ prelevare l'immagine dell'articolo (il cui nome è il codice articolo) ;
+ leggere il nome del file ed estrarre dal database le varianti di colore;
+ aggiungere la barra colorata;
+ salvare il risultato.
Per fare questo importo l'immagine e ne estraggo i pixel nel seguente modo:
pix = img.getRGB(0, 0, w, h, null, 0, w);
A questo punto creo un secondo array di int delle dimensioni necessarie a
contenere l'immagine più la barra colorata ed effettuo l'aggiunta. Ottengo
dunque un array di int con tutti i pixel che devono ricomporre l'immagine.
A questo punto ho un problema, quando salvo l'immagine vengono inserite delle
strane linee verticali.
Il codice utilizzato per il salvataggio è il seguente, dove pix3 è l'array di
int contenente i pixel dell'immagine finale:
finale = new BufferedImage(nuovow+spazio, nuovoh, BufferedImage.TYPE_INT_BGR);
finale.setRGB(0, 0, nuovow+spazio, nuovoh, pix3, 0, nuovow+spazio);
ImageIO.write(finale,"jpg",new File(path+".jpg"));
Allego un esempio dove sono visibili le linee verticali che sono vicino al
confine fra bordo ed immagine articolo (nell'esempio lo spazio per l'articolo è
bianco). Le linee sono evidenti allargando l'immagine con un software tipo GIMP.
Secondo me è un problema che si verifica durante la conversione perchè se
inserisco la BufferedImage finale in una JLabel e la visualizzo le linee non
compaiono.
Qualcuno sa darmi una spiegazione??
ringrazio anticipatamente
|