Klasse: Bild (abstrakt) Vererbung: - Verantwortlichkeiten: - Speicherung der Daten in einem 2d-Array - Speicherung der Farbdaten jedes einzelnen Pixels Kollaborationen: - Der Anwender will ein Bild öffnen und speichern können, ohne sich darüber Gedanken machen zu müssen Klasse: Bilddimensionen Vererbung: - Bild Verantwortlichkeiten: - Wissen über die Größe des Bildes Kollaborationen: - Nutzer kann die Anzahl der Pixel in x und y Richtung abfragen Klasse: RasterImage Vererbung: - Bild Verantwortlichkeiten: - Darstellung des gezeichneten Bildes - Speicherung der Daten in einem 2d-Array - Speicherung der Farbdaten jedes einzelnen Pixels (je ein Bit pro Pixel) Kollaborationen: - Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen Klasse: ShapedImage Vererbung: - RasterImage Verantwortlichkeiten: - Speicherung der Daten in einem 2d-Array - Speicherung der Farbdaten jedes einzelnen Pixels -> Transparenz - Speicherung der Polygondaten - Darstellung der Transparenz außerhalb des Polygons und des Bildes innerhalb des Polygons Kollaborationen: - Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen Klasse: Tool (abstrakt) Vererbung: - Verantwortlichkeiten: - Name, Beschreibung, Tooltip und Icon des Tools speichern - Wissen über das Bild - Veränderung der Pixeldaten des Bildes Kollaborationen: - Der Anwender will ein Bild sehen und bearbeiten können Klasse: Set-Color-Tool (abstrakt) Vererbung: - Tool Verantwortlichkeiten: - Verwalten der Farbcodierung und deren Darstellung - Bearbeiten des Bildes durch Verändern von Farbcodes an bestimmten Pixeln - Darstellung der Farbpallette Kollaborationen: - Der Anwender möchte das Bild farblich geziehlt verändern - Der Anwender möchte die Farbwerte der einzelnen Pixel abfragen Klasse: Un-/Redo-Tool Vererbung: - Set-Color-Tool Verantwortlichkeiten: - 20 Operationen speichern - die letzten (bis zu 10) Änderungen rückgängig machen - die letzten (bis zu 10) Undo-Aufforderungen rückgängig machen - sobald gezeichnet wird, werden alle Redo-Einträge gelöscht Kollaborationen: - Der Anwender möchte eine Tool Änderung rückgängig machen - Der Anwender möchte eine Undo Aktivität rückgängig machen Klasse: Dreh-Tool Vererbung: - Tool Verantwortlichkeiten: - Rotation des angezeigten Bildes - Ändern der Farbwerte, so dass sie mit dem rotierten Bild übereinstimmen Kollaborationen: - Möglichkeit für den Nutzer das Bild zu drehen - Der Anwender möchte das Bild gedreht speichern Klasse: Size-Tool Vererbung: - Tool Verantwortlichkeiten: - Vergrößerung des Bildes (Ansicht und Werte) - Verkleinerung des Bildes (Ansicht und Werte) - Zoomen oder Skalieren Kollaborationen: - Der Anwender möchte in ein Bild zoomen - Der Anwender möchte aus dem Bild heraus zoomen - Der Anwender möchte die Auflösung des Bildes vergrößern - Der Anwender möchte die Auflösung des Bildes verkleinern Klasse: Merge-Tool Vererbung: - Tool Verantwortlichkeiten: - Das Zusammenfügen zweier angezeigter Bilder - Das Zusammenfügen zweier Bilder in eine neue Datei (Abspeichern der neuen Farbwerte) - Das Zusammenfügen übereinander oder nebeneinander (wenn Alpha-Kanal vorhanden) Kollaborationen: - Der Anwender möchte ein Bild neben einem anderen Bild anzeigen - Der Anwender möchte ein Bild neben einem anderen Bild speichern - Der Anwender möchte ein Bild über einem anderen anzeigen lassen - Der Anwender möchte ein Bild über einem anderen speichern Klasse: Pen-Tool Vererbung: - Set-Color-Tool Verantwortlichkeiten: - Speicherung des eingestellten Radius - Setzen von Pixelwerten um die Cursor-Stelle in einen auswählbaren Radius in einer auswählbaren Farbe Kollaborationen: - Der Anwender möchte Freihand in einer freiwählbaren Farbe in einem freiwählbaren Radius zeichnen, ohne Beschränkung innerhalb des Bildes Klasse: FloodFill-Tool Vererbung: - Set-Color-Tool Verantwortlichkeiten: - alle Pixel in einer Äquivalenzklasse zum aktuellen Pixel in eine freiwählbare Farbe einfärben Kollaborationen: - Der Anwender möchte eine Fläche einer Farbe komplett umfärben Klasse: Plain-Tool Vererbung: - Set-Color-Tool Verantwortlichkeiten: - alle Pixel des Bildes in eine Farbe ändern Kollaborationen: - Der Anwender möchte das Bild einfarbig einfärben Klasse: Formen-Tool (abstrakt) Vererbung: - Set-Color-Tool Verantwortlichkeiten: - Zeichnen eines geometrischen Primitives - vereinheitlichte Darstellung der Formauswahl und Ränder Kollaborationen: - Der Anwender möchte ein/e Rechteck/Linie oder eine konvexe Form zeichnen Klasse: Linien-Tool Vererbung: - Formen-Tool Verantwortlichkeiten: - Zeichnen einer Linie in einer wählbaren Dicke und Farbe - Die Linie kann durchgängig, gestrichelt oder gepunktet gezeichnet werden Kollaborationen: - Der Anwender möchte eine durchgezogene Linie zeichnen - Der Anwender möchte eine gestrichelte Linie zeichnen - Der Anwender möchte eine gepunktete Linie zeichnen Klasse: Rechteck-Tool Vererbung: - Formen-Tool Verantwortlichkeiten: - Aufspannen eines Rechtecks zwischen zwei Punkten, der Rand und die Fläche sind in der Farbe frei wählbar, diese Wählbarkeit ist separat vom anderen Zustand möglich - Der Rand kann in der Dicke eingestellt werden Kollaborationen: - Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll Transparenz speichern - Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll eine Farbe haben der Rand soll eine gewisse Breite und Farbe haben Klasse: Konvexe-Form-Tool Vererbung: - Formen-Tool Verantwortlichkeiten: - Aufspannen einer konvexen Form mittels Punkten (max 100) - Die konvexe Form hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann - Der Rand kann im Bezug auf seine Dicke eingestellt werden Kollaborationen: - Der Anwender möchte ein n-Eck zeichnen, dazu berührt er auf dem Bildschirm n-Punkte und am Schluss den Anfangspunkt (10pxl Radius?) - In der berührten Reihenfolge werden Linien gezogen, die die Form aufspannenen und je nach Einstellungen wird der Rand und die interne Fläche dargestellt Klasse: Polygon-Form-Tool Vererbung: - Formen-Tool Verantwortlichkeiten: - Aufspannen eines Polygons über das Bild - Das Polygon hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann - Der Rand kann im Bezug auf seine Dicke eingestellt werden Kollaborationen: - Der Anwender möchte ein Polygon zeichnen Klasse: Kreis-Tool Vererbung: - Set-Color-Tool Verantwortlichkeiten: - Erstellen einer Kreisform in dem man den Mittelpunkt bestimmt und zwei Radien festlegen kann (NS und WO Radius), - Die Dicke des Randes des Kreises ist freiwählbar, sowie die Art des Randes (Gepunktet, etc.), genauso wie die Farbe des Kreises und des Randes Kollaborationen: - Der Anwender möchte einen beliebigen Kreis und eine beliebige Ellipse zeichnen können