16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

Abb.: Darstellung von SpeicherBild<br />

4.2.4.2 Kopieren von Bil<strong>de</strong>rn <strong>in</strong> e<strong>in</strong>en Speicher<br />

Die PixelGrabber-Klasse nimmt e<strong>in</strong> Bild und macht aus diesem e<strong>in</strong> Datenfeld mit<br />

ganzen Zahlen. E<strong>in</strong> PixelGrabber wird auf e<strong>in</strong> Image-Objekt aufgesetzt und füllt e<strong>in</strong><br />

Ganzzahl-Feld mit <strong>de</strong>n Farbwerten, die die Anteile <strong>de</strong>r Farben rot, grün und blau<br />

enthalten.<br />

Der PixelGrabber ist für Modifikationen bereits existieren<strong>de</strong>r Bil<strong>de</strong>r nützlich.<br />

class java.awt.image.PixelGrabber implements ImageConsumer<br />

Konstruktor.<br />

public PixelGrabber(Image img, <strong>in</strong>t x, <strong>in</strong>t y, <strong>in</strong>t breite, <strong>in</strong>t hoehe, <strong>in</strong>t<br />

feld[], <strong>in</strong>t verschiebung, <strong>in</strong>t scanSize)<br />

erzeugt e<strong>in</strong> PixelGrabber-Objekt, das e<strong>in</strong> Rechteck von RGB-Farben aus <strong>de</strong>m Feld holt. Das<br />

Rechteck ist durch die Maße x, y, breite, hoehe beschrieben. Die Farbe für e<strong>in</strong>en Punkt (i,j) s<strong>in</strong>d im<br />

Feld an <strong>de</strong>r Position (j-y)*scanSize+(i-x)+verschiebung. Mit <strong>de</strong>r Umwandlung wird noch<br />

nicht begonnen. Sie muß mit <strong>de</strong>r Funktion grabPixels() angeregt wer<strong>de</strong>n.<br />

Metho<strong>de</strong>n.<br />

public boolean grabPixels() throws InterruptedException<br />

Die Werte von e<strong>in</strong>em Image o<strong>de</strong>r ImageProducer wer<strong>de</strong>n geholt. Die Funktion kann von außen<br />

unterbrochen wer<strong>de</strong>n.<br />

public <strong>in</strong>t getHeight()<br />

liefert die Höhe <strong>de</strong>s Pixelfelds. Ist die Höhe nicht verfügbar, dann ist das Ergebnis –1.<br />

public <strong>in</strong>t getWidth() liefert die Breite <strong>de</strong>s Pixelfelds.<br />

Bsp.: Das nachfolgen<strong>de</strong> Bild lädt e<strong>in</strong> Bild und gibt die Farb<strong>in</strong>formationen auf <strong>de</strong>r<br />

Konsole aus.<br />

import javax.sw<strong>in</strong>g.*;<br />

import java.awt.*;<br />

import java.awt.event.*;<br />

import java.awt.image.*;<br />

public class PR42400 extends Frame<br />

{<br />

Image bild;<br />

<strong>in</strong>t breite, hoehe;<br />

<strong>in</strong>t pixels[];<br />

public PR42400()<br />

{<br />

282

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!