Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    URGENTE aiuto per un esame di java

    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

  2. #2
    Alcuni consigli:
    Controlla il path dell'immagine,
    metti la print all'interno del catch "e.printStackTrace();" altrimenti perdi l'eccezione,
    usa il debugger.
    Daniele Licari

  3. #3
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    ....Altri consigli...
    Quando posti usa i tag di code o php....è meglio....
    E dato che per l'appunto da problemi nel riconoscere temp, controlla molto bene la path....anche perchè logicamente non dovrebbe mancare nulla....Poi, se usi eclipse o qualsiasi altro IDE con debug usalo, altrimenti i fidatissimi System.out.println!!!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.