Java-Code, Array?

1 Antwort

Die Methode "heller" fügt dem Wert jedes Bildpunkts einen bestimmten Betrag hinzu. Dies wird im Code wie folgt implementiert:

for (int y=0; y<_hoehe; y++){
    for (int x=0; x<_breite; x++){
        if (_bilddaten[y][x] + betrag > 255) {
            _bilddaten[y][x] = 255;
        } else if (_bilddaten[y][x] + betrag < 0) {
            _bilddaten[y][x] = 0;
        } else {
            _bilddaten[y][x] = (short) (_bilddaten[y][x] + betrag);
        }
    }
}

Die Methode "spot" erzeugt einen Spot-Effekt auf dem Bild, indem sie eine Beleuchtungsintensität in einem bestimmten Radius um einen Mittelpunkt herum anwendet. Die Ausleuchtung nimmt außerhalb dieses Radius linear ab. Dies wird im Code wie folgt implementiert:

short i0 = 0;
for (int k = _breite/2; k >= r; k--) {
    for (int y=0; y<_hoehe; y++){
        for (int x=0; x<_breite;x++){
            if(((x-x0)*(x-x0))+((y-y0)*(y-y0))<=k*k){ 
                if (_bilddaten[y][x] + i0 > 255) {
                    _bilddaten[y][x] = 255;
                } else if (_bilddaten[y][x] + i0 < 0) {
                    _bilddaten[y][x] = 0;
                } else {
                    _bilddaten[y][x] = (short) (_bilddaten[y][x] + i0);
                }
            }
            if (i > i0){
                i0++;
            }
        }
    }
}

Und so weiter und so fort...:

Die Methode "weichzeichnen" dient dazu, das Bild zu glätten, indem sie den Durchschnittswert der benachbarten Bildpunkte jedes Bildpunkts berechnet und diesen Wert als neuen Wert für den Bildpunkt verwendet.

Die Methode "horizontalspiegelung" spiegelt das Bild horizontal, indem sie die Bildpunkte auf der linken Seite des Bildes mit denen auf der rechten Seite vertauscht.

Die Methode "punktspiegelung" spiegelt das Bild um einen bestimmten Punkt herum, indem sie die Entfernungen von allen Bildpunkten zu diesem Punkt berechnet und die Bildpunkte an den entsprechenden symmetrischen Positionen des Bildes platziert.

Woher ich das weiß:Studium / Ausbildung – Hochschulabschluss in Informatik (MSc)
Mathematik2000 
Fragesteller
 19.12.2022, 18:36

Ich weiß schon, was jede Methode macht. Ich verstehe den Code nicht, welche Zeile was sagt und warum?

0
DasZitrone  19.12.2022, 18:37
@Mathematik2000

Dann verstehst du aber die Grundlagen des Programmierens nicht... Da solltest du nicht mit soetwas anfangen sondern mit einfacheren Sachen.

0