ciao a tutti !!!
vi prego ho assolutamente bisogno di un aiuto urgente, devo consegnare questo programma per un esame ma non ho la minima idea del perchè mi dia errore !!!
qualcuno ha voglia di guardare questo pezzo di codice e darmi un consiglio ?!
devo visualizzare in un bottone un'immagine rimpicciolita con un filter in modo tale che sia grande 32x32 pixel.
all'interno di uno scroll pane ho un box che riempio con il seguente metodo:
public void riempiBox()
{
for (int i=0; i<dim; i++)
{
pi_tot.setLayout(new GridBagLayout());
JButton p = new JButton();
p.setPreferredSize(new Dimension (32,32));
// metto l'immagine i nel pannello
try
{
temp = ImageIO.read(new File(immagini.get(i)));
}
catch(IOException e)
{
temp = new BufferedImage(32, 32, BufferedImage.TYPE_INT_ARGB);
}
buffimm.add(temp);
rimpicciolisci(i);
ImageIcon imm = new ImageIcon(buffimm_anteprime.get(i));
p.setIcon(imm);
[...]
}
box.revalidate();
}
il problema è nel metodo rimpicciolisci() che applica appunto un filtro all'immagine di partenza:
public void rimpicciolisci(int i)
{
[...] // calcolo il fattoreScala per ottenere la dimensione risultante 32
double fattoreScala = (double)32 / dim;
AffineTransform trasformazione = AffineTransform.getScaleInstance(fattoreScala, fattoreScala);
BufferedImageOp trasformazioneOP = new AffineTransformOp(trasformazione, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
BufferedImage destinazione = new BufferedImage(32, 32, BufferedImage.TYPE_INT_RGB);
BufferedImage sorgente = temp;
trasformazioneOP.filter(sorgente, destinazione);
// buffimm_anteprime è un ArrayList private già inizializzato a cui aggiungo mano a mano le BufferedImage che creo qui
buffimm_anteprime.add(destinazione);
}
mi dà errore in
trasformazioneOP.filter(sorgente, destinazione);
dicendomi
Unable to transform src image
at java.awt.image.AffineTransformOp.filter(Unknown Source)
eppure non capisco...
da quanto ho capito mi dice che non riconosce la sorgente (cioè temp), eppure temp è private ed è stato riempito con qualcosa nel metodo riempiBox() !!!
com'è possibile ?!!
grazie a chiunque voglia darmi una mano...
adriana