Post on 11-Jul-2015
description
5/11/2018 Graphics - Visualizzare Immagini - slidepdf.com
http://slidepdf.com/reader/full/graphics-visualizzare-immagini 1/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 l’immagine;2. visualizzare l’immagine.
1. Caricare un’immagine
Se l’immagine è 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 superclassedi tutte le classi che rappresentano immagini.
− ImageIO, derivata anch’essa 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 l’immagine è 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 l’immagine non è disponibile.
2. Visualizzare un’immagine
L’oggetto immagine contiene il riferimento a un oggetto che incapsula i datidell’immagine. Per visualizzare l’oggetto immagine è sufficiente utilizzare ilmetodo drawImage della classe Graphics:
g.drawImage = (immagine, x , y , null);
L’immagine visualizzata ha il vertice superiore sinistro coincidente con lecoordinate x e y passate come parametri.
In alternativa, è possibile modificare la dimensione dell’immagine aggiungendo iparamentri larghezza e altezza:
g.drawImage = (immagine, x , y , larghezza, altezza null);
larghezza e altezza sono valori interi.
Autore: Cinzia BocchiUltimo aggiornamento: 05/11/2011
1
5/11/2018 Graphics - Visualizzare Immagini - slidepdf.com
http://slidepdf.com/reader/full/graphics-visualizzare-immagini 2/3
Esempio: Visualizzare un’immagine da file
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;import java.io.IOException;
import java.net.URISyntaxException;
import 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 BocchiUltimo aggiornamento: 05/11/2011
2
5/11/2018 Graphics - Visualizzare Immagini - slidepdf.com
http://slidepdf.com/reader/full/graphics-visualizzare-immagini 3/3
{
super.paintComponent(g);
g.drawImage(img,X ,Y ,null);
}
}
public static void main(String args[]){
ImageShow frame= new ImageShow();
frame.setVisible(true);
}
}
L’output prodotto è il seguente:
Figura 1. L’immagine 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/ ospedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California,94105, USA.
Autore: Cinzia BocchiUltimo aggiornamento: 05/11/2011
3