Extras din proiect
LUCRUL CU IMAGINI IN JAVA
1.Clasa java.awt.image
Pachetul java.awt.image contine 3 interfete cu functii specifice: ImageConsumer, ImageObserver, ImageProducer. ImageProducer este interfata care produce date de tip imagine pentru tipul de date Image. Fiecare imagine contine o instantiere a ImageProducer, care este folosita la reconstructia imaginii ori de câte ori este solicitat acest lucru. Interfata ImageConsumer este interesata de datele produse prin interfata ImageProducer. Când un consumator este asociat unui producator de imagini, acesta din urma va trimite toate datele despre imagine folosind metoda call. ImageObserver este o interfata ce primeste informatii despre o imagine în timp ce este creata.
1.1.ColorModel este clasa ce încapsuleaza metode pentru descompunerea unui pixel în componentele sale RGB (rosu, verde, albastru). Constructorul poate fi aplelat, specificând un numar de biti alocati pentru un pixel. Este o clasa utila în prelucrarea digitala a imaginilor color.
1.2.IndexColorModel este o clasa ce descompune pixelii în componentele RGB pentru pixelii care detin informatia de culoare, ca indecsi într-o harta a culorilor. De notat ca majoritatea metodelor acestei clase sunt finale (adica nu mai pot fi schimbate prin redefinirea într-o clasa ce extinde clasa IndexColorModel)
1.3.DirectColorModel este o clasa ce descompune pixelii în componentele RGB pentru pixelii care au componentele de culoare încapsulate direct în bitii pixelului însusi. Acest model este similar cu modelul X11 TrueColor.
1.4.ImageFilter este clasa ce implementeaza un filtru, pentru diferitele metode ce sunt folosite pentru a transmite date de la un ImageProducer spre un ImageConsumer. Se poate folosi si un Null Filter ce lasa imaginea neafectata în procesul de mai sus. Pentru a produce versiuni filtrate ale imaginii, aceasta clasa se va folosi în conjunctie cu un obiect de tip FilteredImageSource.
1.5.CropImageFilter este o clasa ce extinde clasa de mai sus si este folosita pentru a extrage o regiune dreptunghiulara, data dintr-un obiect de tip Image si pentru a furniza sursa pentru un nou obiect de tip Image, ce va contine doar regiunea decupata. Va fi folosita în conjunctie cu un obiect de tip FilteredImageSource pentru a crea versiuni decupate ale imaginii existente.
1.6.FilteredImageSource este o implementare a interfetei ImageProducer. Aceasta clasa preia o imagine si un obiect, de tip filtru, si le foloseste pentru a produce o versiune filtrata a imaginii originale. De exemplu, codul pentru schimbarea componentelor rosu si albastru dintr-o imagine este:
Image src = getImage("doc: ///demo/images/duke/T1.gif");
ImageFilter colorfilter = new RedBlueSwapFilter();
Image img = createImage(new FilteredImageSource
(src.getSource(),colorfilter));
1.7.MemoryImageSource este o implementare a clasei ImageProducer, care foloseste un vector pentru a determina valorile pixelilor pentru o imagine data. Un exemplu de creare a unei imagini cu un efect de degrade, de la negru la albastru pe axa Ox si de la negru la rosu pe axa Oy:
int w = 100;
int h = 100;
int pix[] = new int[w*h];
int index = 0;
for (int y = 0; y < h; y++) {
int red = (y * 255) / (h - 1);
for (int x = 0; x < w; x++) {
int blue = (x * 255) / (w - 1);
pix[index++] = (255 << 24) | (red << 16) | blue;
}
}
Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));
1.8.PixelGrabber este o clasa ce implementeaza un obiect de tip ImageConsumer, care poate fi atasat de catre un ImageProducer sau de Image, pentru a trimite un set de pixeli în acea imagine. De exemplu(GrabExample.java):
import java.awt.*;
import java.awt.image.*;
import java.applet.*;
Preview document
Conținut arhivă zip
- Lucru cu Imagini in Java.doc