▼ |  | Sprachebenen und Material zu Die Macht der Abstraktion

1 | Die Macht der Abstraktion - Anfänger
2 | Die Macht der Abstraktion
3 | Die Macht der Abstraktion mit Zuweisungen
4 | Die Macht der Abstraktion fortgeschritten
5 | Konstruktionsanleitungen 1 bis 10
6 | Bilder konstruieren: "image.ss"
7 | Animationen: "world.ss"
8 | Turtle-Grafik: "turtle.ss"
9 | Abspielen von Audio-Dateien: "sound.ss"
10 | 3D-Liniengraphik: "line3d.ss"
11 | DMd A: Sprachen als Libraries
| Index

► | 6 | Bilder konstruieren: "image.ss"

6.1 | Bilder
6.2 | Modi und Farben
6.3 | Einfache geometrische Figuren
6.4 | Eigenschaften von Bildern
6.5 | Bilder zusammensetzen
6.6 | Bilder aus Pixeln konstruieren

On this page:

6.1`` Bilder
image
empty-image
image?
6.2`` Modi und Farben
mode
octet
rgb-color
make-color
color-red
color-green
color-blue
color?
image-color
image-color?
alpha-rgb-color
make-alpha-color
alpha-color-red
alpha-color-green
alpha-color-blue
alpha-color-alpha
alpha-color?
6.3`` Einfache geometrische Figuren
rectangle
circle
ellipse
triangle
line
text
6.4`` Eigenschaften von Bildern
image-width
image-height
image-inside?
find-image
6.5`` Bilder zusammensetzen
h-place
v-place
h-mode
v-mode
overlay
beside
above
clip
pad
6.6`` Bilder aus Pixeln konstruieren
color-list->image
image->color-list
alpha-color-list->image
image->alpha-color-list

top ← prev up next →

### 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

Ein Bild (Name: image) ist die Repräsentation eines Bildes.

> value empty-image : image

Ein leeres Bild mit Breite und Höhe 0.

> value image? : (any -> boolean?)

Der Aufruf (image? x) stellt fest, ob x ein Bild ist.

#### 6.2`` Modi und Farben

> value mode : signature

(one-of "solid" "outline")

Ein Modus (Name: mode) legt fest, ob die Darstellung einer Form diese füllt oder nur einen Umriss zeichnet.

> value octet : signature

(combined natural (predicate (lambda (n) (<= n 255))))

Ein Oktet (Name: octet) ist eine natürliche Zahl zwischen 0 und 255.

> value rgb-color : signature

Eine RGB-Farbe ist eine Farbe (Name: color, die vom Record-Konstruktor make-color zurückgegeben wird:

> value make-color : (octet octet octet -> rgb-color)

Eine RGB-Farbe beschreibt eine Farbe mit den roten, blauen und grünen Anteilen, also z.B. (make-color 100 200 30).

> value color-red : (color -> octet)

liefert den Rot-Anteil einer RGB-Farbe.

> value color-green : (color -> octet)

liefert den Grün-Anteil einer RGB-Farbe.

> value color-blue : (color -> octet)

liefert den Blau-Anteil einer RGB-Farbe.

> value color? : (any -> boolean)

stellt fest, ob ein Objekt eine RGB-Farbe ist.

> value image-color : signature

(mixed string rgb-color)

Eine Farbe (Name: image-color) ist eine Zeichenkette aus einer Farbbezeichnung (z.B. "blue") oder eine RGB-Farbe.

> value image-color? : (any -> boolean?)

stellt fest, ob ein Objekt eine Farbe ist.

> value alpha-rgb-color : signature

Eine Alpha/RGB-Farbe ist eine Farbe (Name: color, die vom Record-Konstruktor make-alpha-color zurückgegeben wird:

> value make-alpha-color : (octet octet octet octet -> alpha-color)

Eine Alpha/RGB-Farbe beschreibt eine Farbe mit den Alpha-, roten, blaue und grünen Anteilen, also z.B. (make-color 50 100 200 30). Der Alpha-Anteil beschreibt, wie durchsichtig die Farbe ist.

> value alpha-color-red : (color -> octet)

liefert den Rot-Anteil einer RGB-Farbe.

> value alpha-color-green : (color -> octet)

liefert den Grün-Anteil einer RGB-Farbe.

> value alpha-color-blue : (color -> octet)

liefert den Blau-Anteil einer RGB-Farbe.

> value alpha-color-alpha : (color -> octet)

liefert den Alpha-Anteil einer RGB-Farbe.

> value alpha-color? : (any -> boolean)

stellt fest, ob ein Objekt eine Alpha/RGB-Farbe ist.

#### 6.3`` Einfache geometrische Figuren

Die folgenden Prozeduren erzeugen Bilder mit einfachen geometrischen Formen:

> value rectangle : (natural natural mode image-color -> image)

Der Aufruf (rectangle w h m c) erzeugt ein Rechteck mit Breite w und Höhe h, gefüllt mit Modus m und in Farbe c.

> value circle : (natural mode image-color -> image)

Der Aufruf (circle r m c) erzeugt einen Kreis oder eine Scheibe mit Radius r, gefüllt mit Modus m und in Farbe c.

> value ellipse : (natural natural mode image-color -> image)

Der Aufruf (ellipse w h m c) erzeugt eine Ellipse mit Breite w und Höhe h, gefüllt mit Modus m und in Farbe c.

> value triangle : (integer mode image-color -> image)

Der Aufruf (triangle s m c) erzeugt ein nach oben zeigendes gleichseitiges Dreieck, wobei s die Seitenlänge angibt, gefüllt mit Modus m und in Farbe c.

> value line : (natural natural number number number number image-color -> image)

Der Aufruf (line w h sx sy ex ey c) erzeugt ein Bild mit einer farbigen Strecke, wobei w die Breite und h die Höhe des Bilds, sowie sx die X- und sx die Y-Koordinate des Anfangspunkts und ex die X- und ey die Y-Koordinate des Endpunkts angeben, gefüllt mit Modus m und in Farbe c.

> value text : (string natural image-color -> image)

Der Aufruf (text s f c) erzeugt ein Bild mit Text s, wobei die Buchstaben die Größe f haben, in Farbe c

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)

liefert die Breite von i in Pixeln.

> value image-height : (image -> natural)

liefert die Höhe von i in Pixeln.

> value image-inside? : (image image -> boolean)

Der Aufruf (image-inside? i1 i2) stellt fest, ob das Bild i2 im Bild i1 enthalten ist.

> value find-image : (image image -> posn)

Der Aufruf (find-image i1 i2) findet die Position von i2 im Bild i1 (in dem es vorkommen muss).

#### 6.5`` Bilder zusammensetzen

The nächste Gruppe von Prozeduren baut aus Bildern neue Bilder:

> value h-place : signature

(mixed integer (one-of "left" "right" "center"))

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

(mixed integer (one-of "top" "bottom" "center"))

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

(one-of "left" "right" "center") Eine horizontale Justierungsangabe (Name: h-mode) gibt an, ob zwei Bilder, die übereinander angeordnet werden, entlang der linken Kante, der rechten Kante oder der Mitte angeordnet werden.

> value v-mode : signature

(one-of "top" "bottom" "center")

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.

> value overlay : (image image h-place v-place -> image)

Der Aufruf (overlay img other h v) legt zweite Bild other auf das erste img. Die beiden anderen Argumente geben an, wie die beiden Bilder zueinander positioniert werden.

> value beside : (image image v-mode -> image)

Der Aufruf (beside img other v) ordnet die beiden Bilder entsprechend des v-Arguments nebeneinander an.

> value above : (image image h-mode -> image)

Der Aufruf (img other h -> image) ordnet die beiden Bilder entsprechend des h-Arguments übereinander an.

> value clip : (image natural natural natural natural -> image)

Der Aufruf (clip img x y w h) liefert das Teilrechteck des Bildes img bei (x, y), Breite w und Höhe h.

> value pad : (image natural natural natural natural -> image)

Der Aufruf (pad img l r t b) fügt an den Seiten von img noch transparenten Leerraum an: l Pixel links, r Pixel rechts, t Pixel oben und b Pixel unten.

#### 6.6`` Bilder aus Pixeln konstruieren

> value color-list->image : ((list-of color) natural natural -> image)

Der Aufruf (color-list->image lis w h) stellt ein Bild mit Breite w und Höhe h her, in dem die Pixel die Farben aus der Liste lis (welche die Länge (* w h) haben muß) haben.

> value image->color-list : (image -> (list-of rgb-color))

Diese Prozedur liefert eine Liste der RGB-Farben der Pixel eines Bildes.

> value alpha-color-list->image : ((list-of alpha-rgb-color) natural natural -> image)

Der Aufruf (color-list->image lis w h) stellt ein Bild mit Breite w und Höhe h her, in dem die Pixel die Farben aus der Liste lis (welche die Länge (* w h) haben muß) haben.

> value image->alpha-color-list : (image -> (list-of rgb-color))

Diese Prozedur liefert eine Liste der Alpha/RGB-Farben der Pixel eines Bildes.
top ← prev up next →