picture
Class Layer

java.lang.Object
  |
  +--picture.Layer
All Implemented Interfaces:
PictureConstants

public final class Layer
extends java.lang.Object
implements PictureConstants

Diese Klasse repraesentiert ein Bild in Form eines Bitmaps mit reellwertigen Pixeldaten. Als Huellklasse für einen zweidimensionalen double-Array findet diese Klasse Anwendung als Bildebene in Picture.


Field Summary
 double[][] data
          Enthaelt die Pixeldaten dieses Pictures.
protected  int height
          Bezeichnet die Hoehe dieses Pictures in Pixeln
protected  int width
          Bezeichnet die Breite dieses Pictures in Pixeln
 
Fields inherited from interface picture.PictureConstants
PRESENT_ABSOLUTE_VALUE, PRESENT_IMAGINARY_PART, PRESENT_POLAR_ANGLE, PRESENT_REAL_PART, SAVE_ABSOLUTE_VALUE, SAVE_COMPLEX, SAVE_IMAGINARY_PART, SAVE_POLAR_ANGLE, SAVE_REAL_PART
 
Constructor Summary
Layer()
          Zum internen Gebrauch.
Layer(double[][] data)
          Erzeugt ein neues Bild.
Layer(double[][] data, double min, double max)
          Erzeugt ein neues Bild.
Layer(int b)
          Erzeugt ein neues quadratisches Bild der Kantenlaenge b.
 
Method Summary
 Layer createNewInstance(java.lang.String name, double[][] data)
          Erzeugt eine Kopie dieses Bildes als Instanz der Unterklasse, mit der dieses Bild erzeugt wurde.
 Layer getEmbeddedInstance()
          gibt das kleinste quadratische Bild zurueck mit Kantenlaenge 2^n, in das dieses Bild hineinpasst.
 int getHeight()
          Gibt die Hoehe dieses Bildes in Pixeln zurueck
 java.lang.String getInfo(int x, int y)
          Erzeugt einen Informationsstring zum Pixel an der Stelle (x, y).
 double getMaximum()
          Gibt den maximalen logischen Grauwert in diesem Bild wider.
 double getMinimum()
          Gibt den minimalen logischen Grauwert in diesem Bild wider.
 Layer getPreview()
          Erzeugt ein Vorschaubild aus diesem Objekt.
 Layer getScaledInstance(int width, int height)
          Erzeugt eine in der Groesse skalierte Version dieses Bildes.
 Layer getShiftedInstance(int width, int height)
          Erzeugt ein Bild, das durch zyklische Verschiebung dieses Bildes in Hoehe und Breite entsteht.
 double getValue(int x, int y)
          Gibt den double-Wert des Pixels (x, y) in der aktuellen Praesentation an.
 Layer getWeightedInstance(double w)
          Erzeugt ein Layer wie dieses, in dem jedes Pixel mit dem angegebenen double-Wert multipliziert wurden.
 int getWidth()
          Gibt die Breite dieses Bildes in Pixeln zurueck
 int[] histogram(int l)
          Liefert die Pixelverteilung dieses Pictures zurück.
 void setMaximum(double max)
          Setzt den maximalen logischen Grauwert.
 void setMinimum(double min)
          Setzt den minimalen logischen Grauwert.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

public double[][] data
Enthaelt die Pixeldaten dieses Pictures. Dabei bezeichnet die erste Komponente die Zeile, die zweite die Spalte.

width

protected int width
Bezeichnet die Breite dieses Pictures in Pixeln

height

protected int height
Bezeichnet die Hoehe dieses Pictures in Pixeln
Constructor Detail

Layer

public Layer()
Zum internen Gebrauch. Erzeugt ein Bild der Groesse 2 x 2

Layer

public Layer(double[][] data)
Erzeugt ein neues Bild.
Parameters:
data - Bilddaten.

Layer

public Layer(double[][] data,
             double min,
             double max)
Erzeugt ein neues Bild. Die Schranken werden dabei explizit mit angegeben. Es ist darauf zu achten, dass min und max so gewaehlt sind, dass alle Bilddaten dazwischen liegen.

Sinnvoll ist die Angabe eigener Grenzen z.B. zur Erzeugung von konstanten, nichtschwarzen Bilder oder allgemein zur Vermeidung der farblichen Autoskalierung.

Parameters:
data - Bilddaten.
min - Postulierte untere Schranke der Bilddaten
max - Postulierte obere Schranke der Bilddaten

Layer

public Layer(int b)
Erzeugt ein neues quadratisches Bild der Kantenlaenge b. Das Bild ist konstant 0.
Parameters:
b -  
Method Detail

getShiftedInstance

public Layer getShiftedInstance(int width,
                                int height)
Erzeugt ein Bild, das durch zyklische Verschiebung dieses Bildes in Hoehe und Breite entsteht.
Parameters:
width - Verschiebung in x-Richtung
height - Verschiebung in y-Richtung

getEmbeddedInstance

public Layer getEmbeddedInstance()
gibt das kleinste quadratische Bild zurueck mit Kantenlaenge 2^n, in das dieses Bild hineinpasst. Dieses Bild wird in dem neu konstruierten Bild zentriert dargestellt. Die Raender werden mit 0 aufgefuellt.
Returns:
naechstgroesseres quadratisches Zweierpotenzbild

getScaledInstance

public Layer getScaledInstance(int width,
                               int height)
Erzeugt eine in der Groesse skalierte Version dieses Bildes.
Parameters:
width - Breite des neuen Bildes
height - Hoehe des neuen Bildes
Returns:
eine Projektion dieses Bildes auf die Groesse width mal height.

getWeightedInstance

public Layer getWeightedInstance(double w)
Erzeugt ein Layer wie dieses, in dem jedes Pixel mit dem angegebenen double-Wert multipliziert wurden.
Parameters:
w - Gewicht
Returns:
mit w gewichtete Version dieses Layers

getPreview

public Layer getPreview()
Erzeugt ein Vorschaubild aus diesem Objekt. Fuer Dialogfenster kann diese Methode zur Erzeugung einer Kopie dieses Pictures in der Standardgroesse 64 mal 64 verwendet werden.
Returns:
Ein neues Layer, das dieses Bild in der Normgroesse 64 mal 64 enthaelt.

getWidth

public int getWidth()
Gibt die Breite dieses Bildes in Pixeln zurueck
Returns:
Breite dieses Bildes.

getHeight

public int getHeight()
Gibt die Hoehe dieses Bildes in Pixeln zurueck
Returns:
Hoehe dieses Bildes

getValue

public double getValue(int x,
                       int y)
Gibt den double-Wert des Pixels (x, y) in der aktuellen Praesentation an.
Parameters:
x - zu untersuchende x-Koordinate
y - zu untersuchende y-Koordinate
Returns:
Grauwert in (x, y) in der aktuellen Praesentation.

getMaximum

public double getMaximum()
Gibt den maximalen logischen Grauwert in diesem Bild wider.
Returns:
maximaler Grauwert.

setMaximum

public void setMaximum(double max)
Setzt den maximalen logischen Grauwert.
Parameters:
max - maximaler Grauwert

getMinimum

public double getMinimum()
Gibt den minimalen logischen Grauwert in diesem Bild wider.
Returns:
minimaler Grauwert.

setMinimum

public void setMinimum(double min)
Setzt den minimalen logischen Grauwert.
Parameters:
min - minimaler Grauwert

getInfo

public java.lang.String getInfo(int x,
                                int y)
Erzeugt einen Informationsstring zum Pixel an der Stelle (x, y).
Parameters:
x - x-Koordinate
y - y-Koordinate
Returns:
Info-String zum Pixel (x, y).

histogram

public int[] histogram(int l)
Liefert die Pixelverteilung dieses Pictures zurück. Dabei wird das Intervall [min, max] in eine äquidistante Zerlegung der Länge l zerlegt und ein int[]-Feld der entsprechenden Länge mit den jeweiligen Häufigkeiten zurückgegeben.
Parameters:
l - Zerlegungslänge

createNewInstance

public Layer createNewInstance(java.lang.String name,
                               double[][] data)
Erzeugt eine Kopie dieses Bildes als Instanz der Unterklasse, mit der dieses Bild erzeugt wurde. Alle Daten werden uebernommen, ausser width, height, data und name, diese werden aus den Parametern uebernommen.

Parameters:
name: - Name des neuen Bildes (Nun Unfug, da Layer keine Namen mehr haben...)
data: - Inhalt des neuen Bildes.
Returns:
Layer wie this, nur mit data als Inhalt.