Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Modelul de impingere AWT

java


Modelul de împingere AWT

Modelul de împingere este implementat în pachetul de clase java.awt si este un model simplu de filtre de producatori si consumatori (producer/consumer) pentru procesarea de imagini. O imagine este reprezentata de un obiect de tip Image si este o abstractizare care nu este manipulata direct, ci mai degrab 454g62e 59; este folosita pentru a obtine o referinta catre un alt obiect care implementeaza interfata ImageProducer. Obiectele care implementeaza aceasta interfata sunt apoi atasate la obiecte care implementeaza interfata ImageConsumer.



Obiectele filtru implementeaza amândoua interfetele, de producator si consumator si pot sa joace rolul de sursa sau destinatie pentru datele imagine. Datele imagine au asociate un obiect ColorModel care descrie configuratia pixelilor din imagine, precum si modul de interpretare a datelor.

Pentru a procesa imagini folosind modelul de împingere, un obiect Image este obtinut dintr-o sursa oarecare, de exemplu printr-un apel la metoda Applet.getImage(). Metoda Image.getSource() poate apoi fi folosita pentru a obtine ImageProducer-ul pentru acel Image. O serie de obiecte de tip FilteredImageSource pot fi atasate la ImageProducer, fiecare filtru fiind un ImageConsumer a imaginii sursa precedente.

Clasa FilteredImageSource este o implementare a interfetei ImageProducer care preia o imagine si un obiect filtru si le foloseste pentru a produce date imagine continând imaginea filtrata. În fragmentul de cod urmator (Exemplul 7.1.) se prezinta o filtrare a unei imagini folosind un filtru de convolutie:

Exemplul 7.1. Utilizarea modelului de împingere pentru realizarea unei operatii de convolutie a unei imagini

Image src = getImage(getDocumentBase(),"floare.gif");

ImageProducer prod = src.getSource();

ImageFilter filter = new BufferedImageFilter(

new ConvolveOp(new Kernel(3,3, new float[] )));

Image img = createImage(new FilteredImageSource

(src.getSource(),filter));

Procesarea de imagini în AWT defineste doar câteva filtre simple pentru ajustarea imaginilor si pentru manipulari ale canalelor de culoare.

Destinatia finala a imaginilor filtrate este un obiect Image, care poate fi creat printr-un apel la metoda Component.createImage(). Odata creat consumatorul de imagine, imaginea poate fi desenata pe ecran printr-un apel la metoda Image.getGraphics() pentru a obtine un obiect de tip Graphics, care reprezinta un dispozitiv ecran, urmat de apelul Graphics.drawImage().

Procesarile de imagini din AWT au fost concepute pentru a facilita afisarea de imagini într-un browser Web. În acest context o imagine poate fi rezidenta undeva în retea si nu se poate garanta ca acea imagine va fi disponibila atunci când este nevoie, asa ca modelul AWT nu forteaza filtrarea imaginii sau completarea afisarii imaginii, fiind un model în întregime de împingere.

Un ImageConsumer nu poate niciodata sa solicite datele, el trebuie sa astepte dupa ImageProducer pentru a "împinge" datele spre el. În mod similar, un ImageConsumer nu are nici o informatie despre momentul când datele vor fi trimise în întregime, acesta trebuie sa astepte un apel la metoda ImageComplete() pentru ca sa afle când are imaginea completa. O aplicatie poate de asemenea instantia un obiect de tip ImageObserver daca doreste sa fie înstiintata despre încheierea unei operatii de procesare a imaginilor.

Procesarile de imagini din AWT nu au adoptat ideea unei imagini care este sustinuta prin stocarea ei permanent. Atât timp cât sunt furnizate metodele pentru a converti o arie de memorie de intrare într-un ImageProducer, sau pentru a captura o arie de memorie dintr-un ImageProducer, nu exista notiunea de obiect imagine persistent care sa poata fi reutilizat. Atunci când este nevoie de date de la un Image, trebuie sa obtinem o referinta spre ImageProducer-ul imaginii.

Modelul AWT nu poate fi folosit pentru dezvoltarea de cod de procesare a imaginilor foarte performant din cauza modelului de împingere, lipsei unui obiect imagine persistent, modelului restrictionat al unui filtru imagine si a unui numar mic de formate de date imagine. De asemenea lipsesc câteva concepte de baza care sunt des folosite în procesarea de imagini, cum ar fi operatiile executate pe o regiune de interes a unei imagini.

În Tabelul 7.2. sunt prezentate clasele si interfetele care sunt folosite de modelul de împingere AWT.



Clasa/Interfata

Descriere

Image

Superclasa pentru toate clasele care reprezinta imagini grafice

ColorModel

Clasa abstracta care încapsuleaza metodele pentru translatarea valorii unui pixel spre componentele culorii (ex. , rosu, verde, albastru) si o componenta alfa.

FilteredImageSource

O implementare a interfetei ImageProducer care preia imaginea existenta si un obiect filtru si le utilizeaza pentru a produce date imagine pentru o noua versiune filtrata a imaginii originale

ImageProducer

Interfata pentru obiectele care pot produce date imagine pentru obiecte Image. Fiecare imagine contine un ImageProducer care este folosit pentru reconstructia imaginii oricând este nevoie, de exemplu, atunci când imaginea este scalata si are alte dimensiuni, sau când latimea sau înaltimea imaginii este solicitata.

ImageConsumer

Interfata pentru obiectele care îsi manifesta interesul asupra datelor imagine prin interfata ImageProducer. Când este adaugat un consumator la un producator de imagine, producatorul trimite toate datele despre imagine folosind apeluri de metode definite în aceasta interfata.

ImageObserver

Interfata asincrona de actualizare pentru receptionarea de notificari cu privire la informatiile despre un obiect Image, în timp ce imaginea se construieste.

Tabelul 7.2. Clasele si interfetele modelului de împingere




Document Info


Accesari: 1241
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )