Sei sulla pagina 1di 3

Graphics - Visualizzare immagini

Come visualizzare le immagini


La classe Graphics del package AWT permette di visualizzare le immagini GIF e JPG in un contesto grafico. Le azioni da compiere sono 2:

1. caricare limmagine; 2. visualizzare limmagine.


1. Caricare unimmagine Se limmagine memorizzata in un file locale, si utilizza la seguente chiamata: Image immagine = ImageIO.read(new File(filename));

Image una classe astratta di AWT, derivata da Object, che la superclasse


di tutte le classi che rappresentano immagini. ImageIO, derivata anchessa da Object, appartiene al package javax.imageio e dispone di metodi statici per la gestione di immagini da file. File una sottoclasse concreta di Object, appartenente al package java.io, che rappresenta il pathname di un file o di una directory.

Se limmagine memorizzata in un file remoto, si utilizza la seguente chiamata: String urlname= url; Image immagine = ImageIO.read(new URL(urlname)); Il metodo read lancia una IOException se limmagine non disponibile. 2. Visualizzare unimmagine Loggetto immagine contiene il riferimento a un oggetto che incapsula i dati dellimmagine. Per visualizzare loggetto immagine sufficiente utilizzare il metodo drawImage della classe Graphics: g.drawImage = (immagine, x, y, null); Limmagine visualizzata ha il vertice superiore sinistro coincidente con le coordinate x e y passate come parametri. In alternativa, possibile modificare la dimensione dellimmagine aggiungendo i paramentri larghezza e altezza: g.drawImage = (immagine, x, y, larghezza, altezza null); larghezza e altezza sono valori interi.

Autore: Cinzia Bocchi Ultimo aggiornamento: 05/11/2011

Esempio: Visualizzare unimmagine da file


import import import import import import import java.awt.Container; java.awt.Graphics; java.awt.Image; java.io.File; java.io.IOException; java.net.URISyntaxException; java.net.URL;

import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; @SuppressWarnings("serial") public class ImageShow extends JFrame { public static final int X=0; public static final int Y=0; public static final int LARGHEZZA=800; public static final int ALTEZZA=600; private Container contentPane; private Cornice c; public ImageShow() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); contentPane= getContentPane(); setTitle("Visualizzatore di immagini"); setSize(LARGHEZZA,ALTEZZA); setLocation(X,Y); c= new Cornice(); contentPane.add(c); } class Cornice extends JPanel { public static final int X=0; public static final int Y=0; private Image img; public Cornice() { try { URL imgPath = getClass().getClassLoader().getResource("img/mare1 jpg"); img= ImageIO.read(new File(imgPath.toURI())); } catch(IOException ecc) { System.out.println(ecc.getMessage()); } catch(URISyntaxException ecc) { System.out.println(ecc.getMessage()); } } public void paintComponent(Graphics g)
Autore: Cinzia Bocchi Ultimo aggiornamento: 05/11/2011

{ } }

super.paintComponent(g); g.drawImage(img,X,Y,null);

public static void main(String args[]) { ImageShow frame= new ImageShow(); frame.setVisible(true); } }

Loutput prodotto il seguente:

Figura 1. Limmagine visualizzata con ImageShow

Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Autore: Cinzia Bocchi Ultimo aggiornamento: 05/11/2011