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




IMAGINI EXTERNE

java


IMAGINI EXTERNE



In Java AWT este posibil\ folosirea imaginilor create extern în format gif sau jpeg. Folosirea imaginilor se realizeaz\ prin intermediul clasei Image. Aceasta nu este o clas\ de componente (nu extinde clasa Component) ci implementeaz\ obiecte care pot fi desenate pe suprafa]a unor componente cu metode specifice unui context grafic pentru componenta respectiv\ (similar modului cum se deseneaz\ o linie sau un cerc).

Clasa Image

Variabile

UndefinedProperty

The UndefinedProperty object should be returned whenever a property which was not defined for a particular image is fetched.

Constructor

Image ()

Metode

flush ()

Flushes all resources being used by this Image object.

getGraphics()

Gets a graphics object to draw into this image.

getHeight(ImageObserver)

Gets the actual height of the image.

getProperty(String, ImageObserver)

Gets a property of the image by name.

getSource()

Gets the object that produces the pixels for the image.

getWidth(ImageObserver)

Gets the actual width of the image.

Dup\ cum am v\zut afi[area unei imagini într-un context grafic se realizeaz\ cu metoda drawImage din clasa Graphics. Prototipul acestei func]ii este :

public abstract boolean drawImage(Image img, int x, int y,

ImageObserver observer)

Exemplu - afi[area unei imagini într-un applet

import java.awt.*;

import java.applet.*;

import java.net.*;

public class TestImage1 extends Applet

catch (MalformedURLException e)

img = getImage(adresa);

}

public void paint(Graphics g)

In acest exemplu pentru a ob]ine un obiect de tipul Image s-a folosit metoda java.applet.getImage care prime[te drept parametru o adres\ URL. Formatul acestei metode este :

public Image getImage(URL url) sau

public Image getImage(URL url, String name),

parametrul url specific\ localizarea fi[ierului în WWW iar name define[te [irul de caractere ce reprezint\ numele imaginii:

Ex: getImage(getDocumentBase(), "clouds.gif")

(Metoda getDocumentBase() a clasei Applet reg\se[te obiectul director care con]ine fi[ierul executabil al appletului)

In cazul în care dorim s\ afi[\m o imagine în fereastra unei aplica]ii independente va trebui s\ folosim o alt\ modalitate de a ob]ine obiectul de tip imagine. In acest caz se utilizeaz\ metoda getImage a clasei Toolkit, care are urm\torul format:

public abstract Image getImage(String filename) sau

public abstract Image getImage(URL url)

Clasa Toolkit [i subclasele sale sunt utile pentru ob]inerea informa]iilor despre monitor, pentru a determina fonturile acceptate de o anumit\ platform\ [i a crea elemente de afi[aj cum sunt butoanelem imaginile, castele de dialog, etc. Ea ofer\ fiec\rei platforme suport pentru interfa]a GUI (Graphical User Interface) din Java.

Clasa Toolkit

Constructor

Toolkit ()

Metode (selectiv)

checkImage (Image, int, int, ImageObserver)

Monitorizeaz\ stadiul(evolu]ia) unei imagini pe o anumit\ în\l]ime [i l\]ime a ecranului

getColorModel()

Determin\ schema de culoare a ecranului

getDefaultToolkit()

Returneaz\ kitul cu instrumente implicit.

getFontList()

Intoarce lista fonturilor disponibile pe platforma curent\

getFontMetrics(Font)

Returneaz\ configura]ia metric\ a unui anumit font

getImage(String)

Ofer\ o imagine din fi[ierul specificat

getImage(URL)

Ofer\ o imagine de la adresa specificat\

getScreenResolution()

Valoarea rezolu]iei ecranului in puncte pe inci

getScreenSize()

Afl\ dimensiunile ecranului, exprimate în pixeli

prepareImage(Image, int, int, ImageObserver)

Preg\te[te afi[area pe ecran a unei imagini, având lungimea [i l\]imea specificate.

sync()

Sincronizeaz\ imaginile grafice curente, astfel încât acestea s\ func]ioneze

împreun\. Util\ la crearea secven]elor animate.

Ob]inerea unui obiect de tip imagine dintr-un fi[ier se realizeaz\ a[adar astfel:

Image img

img = Toolkit.getDefaultToolkit().getImage("clouds.gif")

Afi[area imaginilor pe o suprafa]\ grafic\ se realizeaz\, de obicei, prin intermediul unei componente de tip Canvas,

Exemplu - afi[area unei imagini într-o fereastr\

import java.awt.*;

import java.awt.event.*;

public class TestImage2

class ImageCanvas extends Canvas

public void paint(Graphics g)

public Dimension getMinimumSize()

public Dimension getMaximumSize()

public Dimension getPreferredSize()

public void setSize(Dimension newCanvasSize)

In ambele exemple se va observa c\ imaginea nu apare complet\ de la început ci este desenat\ treptat f\r\ interven]ia programatorului. Acest lucru se întâmpl\ deoarece metoda getImage() nu face decât s\ declan[eze procesul de înc\rcare a imaginii, dup\ care red\ imediat controlul apelantului. Acest lucru este util, întrucât procesul de înc\rcare a unei imagini poate dura mult (ex:atunci când imaginea este preluat\ din re]ea) [i nu este de dorit ca în acest interval de timp (pân\ la înc\rcarea complet\ a imaginii) aplica]ia s\ fie blocat\.

Ca urmare în metoda paint() va fi desenat\ numai por]iunea de imagine care este disponibil\ la un moment dat [i care poate fi incomplet\. De aceea trebuie s\ existe un mecanism prin care componenta s\ fie redesenat\ în momentul în care au mai sosit informa]ii legate de imagine.

Acest mecanism este realizat prin intermediul interfe]ei ImageObserver, implementat\ de clasa Component [i deci [i de toate subclasele lui Component. Aceast\ interfa]\ specific\ obiecte care au început s\ utilizeze o imagine incomplet\ [i care trebuie anun]ate de noile date ob]inute în leg\tura cu imaginea respectiv\.

Monitorizarea înc\rc\rii imaginilor - Interfa]a ImageObserver

Interfa]a are o singur\ metod\ imageUpdate apelat\ periodic de firul de execu]ie (creat automat) care se ocup\ cu înc\rcarea imaginii.

imageUpdate ( Image img, int flags,

int x, int y, int w, int h )

Implementarea implicit\ const\ într-un apel la repaint() pentru dreptunghiul specificat la apel [i care reprezint\ zona din imagine pentru care se cunosc noi informa]ii. Intregul flags furnizeaz\ informa]ii despre starea transferului. Aceste informa]ii pot fi aflate prin intermediul constantelor definite de interfa]\. Acestea sunt :

ABORT

Inc\rcarea imaginii a fost întrerupt\, înainte de completarea ei.

ALLBITS

Imaginea a fost înc\rcat\ complet

ERROR

A ap\rut o eroare în timpul înc\rc\rii imaginii.

FRAMEBITS

Totii bitii cadrului curent sunt disponibili

HEIGHT

In\l]imea imaginii este disponibil\

PROPERTIES

Propriet\]ile imaginii sunt disponibile

SOMEBITS

More pixels needed for drawing a scaled variation of the image are available.

WIDTH

In\l]imea imaginii este disponibil\

Prezen]a în flags a unui bit de valoare 1 pe pozi]ia reprezentat\ de o constant\ înseamn\ c\ respectiva condi]ie este îndeplinit\.

Exemple :

(flags & ALLBITS) != 0 imaginea eset complet\

(flags & ERROR | ABORT ) != 0 a ap\rut o erorare sau transferul imaginii a fost întrerupt

Metoda imageUpdate poate fi redefint\ pentru a personaliza afi[area imaginii. Pentru aceasta implement\m clasei ImageCanvas, definit\ anterior, metoda imageUpdate, care va fi apelat\ asincron de fiecare dat\ când sunt disponibili noi pixeli.

Exemplu

public boolean imageUpdate(Image img, int flags, int x, int y, int w,

int h)

//daca am toti bitii nu mai sunt necesare noi update-uri

return ( (flags & (ALLBITS | ABORT)) == 0);


Document Info


Accesari: 1311
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. 2024 )