Immagini in Java ingredienti fondamentali e tecniche di base.

10
immagini in Java ingredienti fondamentali e tecniche di base

Transcript of Immagini in Java ingredienti fondamentali e tecniche di base.

Page 1: Immagini in Java ingredienti fondamentali e tecniche di base.

immagini in Java

ingredienti fondamentali e tecniche di base

Page 2: 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

Page 3: Immagini in Java ingredienti fondamentali e tecniche di base.

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

Page 4: Immagini in Java ingredienti fondamentali e tecniche di base.

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

Page 5: Immagini in Java ingredienti fondamentali e tecniche di base.

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) {

}

Page 6: Immagini in Java ingredienti fondamentali e tecniche di base.

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

Page 7: Immagini in Java ingredienti fondamentali e tecniche di base.

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)

Page 8: Immagini in Java ingredienti fondamentali e tecniche di base.

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

Page 9: Immagini in Java ingredienti fondamentali e tecniche di base.

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)

}

Page 10: Immagini in Java ingredienti fondamentali e tecniche di base.

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