6 Bilder konstruieren: "image.ss"
Note: This is documentation for the "image.rkt" teachpack that goes with the German textbook Die Macht der Abstraktion.
Dieses Teachpack definiert Prozeduren für die Konstruktion von Bildern. Einfache Bilder werden als geometrische Formen oder Bitmaps konstruiert. Zusätzliche Prozeduren erlauben die Komposition von Bildern.
6.1 Bilder
value
image : signature
value
6.2 Modi und Farben
value
mode : signature
Ein Modus (Name: mode) legt fest, ob die Darstellung einer Form diese füllt oder nur einen Umriss zeichnet.
value
octet : signature
Ein Oktet (Name: octet) ist eine natürliche Zahl zwischen 0 und 255.
value
rgb-color : signature
value
color-green : (color -> octet)
value
color-blue : (color -> octet)
value
image-color : signature
Eine Farbe (Name: image-color) ist eine Zeichenkette aus einer Farbbezeichnung (z.B. "blue") oder eine RGB-Farbe.
value
image-color? : (any -> boolean?)
value
alpha-rgb-color : signature
value
alpha-color-red : (color -> octet)
value
alpha-color-green : (color -> octet)
value
alpha-color-blue : (color -> octet)
value
alpha-color-alpha : (color -> octet)
value
alpha-color? : (any -> boolean)
6.3 Einfache geometrische Figuren
Die folgenden Prozeduren erzeugen Bilder mit einfachen geometrischen Formen:
value
rectangle : (natural natural mode image-color -> image)
value
circle : (natural mode image-color -> image)
value
ellipse : (natural natural mode image-color -> image)
value
triangle : (integer mode image-color -> image)
value
line : (natural natural number number number number image-color -> image)
value
text : (string natural image-color -> image)
Außerdem können beliebige Bitmap-Bilder in ein Scheme-Programm eingeklebt werden.
6.4 Eigenschaften von Bildern
Zwei Eigenschaften von Bildern sind für ihre Manipulation nützlich, nämlich Breite und Höhe:
value
image-width : (image -> natural)
value
image-height : (image -> natural)
value
image-inside? : (image image -> boolean)
value
find-image : (image image -> posn)
6.5 Bilder zusammensetzen
The nächste Gruppe von Prozeduren baut aus Bildern neue Bilder:
value
h-place : signature
Eine horizontale Positionsangabe (Name: h-place) gibt an, wie zwei Bilder horizontal zueinander positioniert werden
Im ersten Fall, wenn es sich um eine Zahl x handelt, wird das zweite Bild x Pixel vom linken Rand auf das erste gelegt. Die drei Fälle mit Zeichenketten sagen, daß die Bilder am linken Rand bzw. am rechten Rand bündig plaziert werden, bzw. das zweite Bild horizontal in die Mitte des ersten gesetzt wird.
value
v-place : signature
Eine vertikale Positionsangabe (Name: v-place) gibt an, wie zwei Bilder vertikal zueinander positioniert werden
Im ersten Fall, wenn es sich um eine Zahl y handelt, wird das zweite Bild y Pixel vom oberen Rand auf das erste gelegt. Die drei Fälle mit Zeichenketten sagen, daß die Bilder am oberen Rand bzw. am unteren Rand bündig plaziert werden, bzw. das zweite Bild vertikal in die Mitte des ersten gesetzt wird.
value
h-mode : signature
value
v-mode : signature
Eine vertikale Justierungsangabe (Name: V-mode) gibt an, ob zwei Bilder, die nebenander angeordnet werden, entlang der oberen Kante, der untern Kante oder der Mitte angeordnet werden.
6.6 Bilder aus Pixeln konstruieren
value
color-list->image : ((list-of color) natural natural -> image)
value
image->color-list : (image -> (list-of rgb-color))
value
alpha-color-list->image : ((list-of alpha-rgb-color) natural natural -> image)
value
image->alpha-color-list : (image -> (list-of rgb-color))