Java-Code? Array?
Wie wird das Array verwendet? Was befindet sich in dem Array? kann jemand mir den Code und die Methode dunkler erklären?
* SWBild ist eine Klasse, die Graustufenbilder repraesentiert und
* manipuliert. Die Implementierung erfolgt durch ein einfaches
* Bildformat: Die Bildpunkte werden in einem zweidimensionalen
* Array von 'short'-Werten gehalten. Jeder Feldeintrag kann einen
* Wert zwischen 0 und 255 annehmen. Andere Werte sind unzulaessig.
* Der Wertebereich [0..255] repraesentiert den Graustufenbereich:
* 0 fuer Schwarz, 255 fuer Weiss und dazwischenliegende Werte fuer
* die Grauabstufungen.
*
* Beispielmethode 'dunkler': Ein geladenes Bild kann um
* ein gegebenes 'delta' abgedunkelt werden.
class SWBild
{
// die Bilddaten dieses Bildes
private short[][] _bilddaten;
// die Breite dieses Bildes
private int _breite;
// die Hoehe dieses Bildes
private int _hoehe;
// Leinwand zur Anzeige
private Leinwand _leinwand;
/**
* Initialisiert ein Bild mit einer Bilddatei. Der Benutzer kann interaktiv mit
* Hilfe eines Dateidialogs die zu ladende Datei auswaehlen.
*/
public SWBild()
{
_bilddaten = BildEinleser.liesBilddaten();
if (_bilddaten != null)
{
aktualisiereBildgroesse(_bilddaten);
erzeugeLeinwand();
}
}
/**
* Initialisiert ein Bild mit einer Bilddatei. Der Dateiname kann als absoluter
* oder relativer Pfad uebergeben werden.
*
* @param bilddateiName
* der Name der Bilddatei
*/
public SWBild(String bilddateiName)
{
_bilddaten = BildEinleser.liesBilddaten(bilddateiName);
aktualisiereBildgroesse(_bilddaten);
erzeugeLeinwand();
}
/**
* Dieses Bild um einen Wert abdunkeln.
*
* @param delta
* Wert der Abdunkelung. Es wird mit dem Betrag von delta gerechnet,
* deshalb darf der Parameter sowohl positiv als auch negativ sein.
*/
public void dunkler(int delta)
{
if (delta < 0)
{
delta = -delta;
}
/**
* Durch alle Bytes des Bildes gehen und jeden Wert dekrementieren
*/
for (int y = 0; y < _hoehe; y++)
{
for (int x = 0; x < _breite; x++)
{
if ((_bilddaten[y][x] - delta) > 0) // Wert darf 0 nicht unterschreiten
{
_bilddaten[y][x] = (short) (_bilddaten[y][x] - delta);
}
else
{
_bilddaten[y][x] = 0;
}
}
}
// Neuzeichnen der Bildleinwand, basierend auf den Werten in _bilddaten:
zeichneBild();
}