Immagini in Java ingredienti fondamentali e tecniche di base.
-
Upload
giordano-corsini -
Category
Documents
-
view
213 -
download
0
Transcript of Immagini in Java ingredienti fondamentali e tecniche di base.
immagini in Java
ingredienti fondamentali e tecniche di base
aprile 2009 immagini raster in Java 2
generalità
array bidimensionali di pixel rettangolari, ciascun pixel ha un colore
classe più importante per la rappresentazione di immagini: java.awt.image.BufferedImage
gli oggetti BufferedImage rappresentano le immagini esplicitamente in memoria
le applicazioni possono creare BufferedImage od ottenerle da file esterni (PNG, GIF ecc.)
le applicazioni possono disegnare su immagini costruite o caricate
aprile 2009 immagini raster in Java 3
classi Java
BufferedImage, Image Image è superclasse di BufferedImage
i metodi di renderizzazione (nella classe Graphics2D) lavorano su Image
e quindi anche su BufferedImage, grazie all'ereditarietà
ogni BufferedImage ha un ColorModel Raster di dati pittorici
aprile 2009 immagini raster in Java 4
operazioni fondamentali
1)lettura di immagini da file esterni con supporto per vari formati raster
2)visualizzazione di immagini
3)creazione di immagini e loro uso come superficie di disegno
4)salvataggio immagini su file con supporto per vari formati raster
aprile 2009 immagini raster in Java 5
lettura di immagini
servizi basati sul package javax.imageio supporto per GIF, PNG, JPEG, BMP e WBMP
estendibile ad altri formati come TIFF o JPEG2000 esempio lettura
BufferedImage img = null;
try {
img = ImageIO.read(new
File("strawberry.jpg"));
} catch (IOException e) {
}
aprile 2009 immagini raster in Java 6
metodo ImageIO.read(.)
public static BufferedImage read(File input)
l'oggetto File (package java.io) può essere facilmente creato dal nome del file (new File("strawberry.jpg"))
il formato del file viene riconosciuto automaticamente
overloaded restituisce riferimento a un (nuovo) oggetto BufferedImage contenente l'immagine letta
lancia eccezioni se input è null o se si verifica un errore nell'accesso al file
aprile 2009 immagini raster in Java 7
visualizzazione di immagini
si usa il metodo drawImage(.) della classe Graphics (overloaded)
public boolean drawImage(Image img, int x, int y, ImageObserver observer)
posizionamento e rendering 1:1 public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
posizionamento e rendering scalato
observer normalmente posto a null (l'uso è avanzato)
aprile 2009 immagini raster in Java 8
filtri
nella visualizzazione di immagini è possibile utilizzare filtri
un filtro è un algoritmo che viene applicato ai pixel di un'immagine data per produrne una variazione
metodo drawImage(BufferedImage img, BufferedImageOp op, int x, int y) di Graphics2D
il filtro è descritto dall'oggetto di tipo BufferedImageOp
per approfondimenti si veda il tutorial Java2D
aprile 2009 immagini raster in Java 9
salvataggio di immagini
simile al caricamento package javax.imageio
esempio salvataggio in PNG
try {
File outputfile = new File("saved.png");
ImageIO.write(<immagine>, "png", outputfile);
} catch (IOException e)
}
aprile 2009 immagini raster in Java 10
metodo ImageIO.write(.)
public static boolean write(RenderedImage im, String formatName, File output)
RenderedImage è una interface implementata da BufferedImage
salva l'immagine nel formato specificato dalla stringa formati supportati: JPEG, PNG, GIF, BMP e WBMP restituisce false se il formato specificato è
sconosciuto o non supportato lancia eccezioni con parametri/o null o se la
scrittura su disco fallisce