copy_rectangle — Kopieren aller Pixel eines Rechtecks zwischen Ausgabefenstern.
copy_rectangle( : : WindowHandleSource, WindowHandleDestination, Row1, Column1, Row2, Column2, DestRow, DestColumn : )
copy_rectangle kopiert alle Pixel, die innerhalb des durch
die Parameter Row1, Column1, Row2 und
Column2 beschriebenen Rechtecks liegen, aus dem angegebenen
Window mit der logischen Fensternummer WindowHandleSource
in das angegebene Window mit der logischen Fensternummer
WindowHandleDestination. Die Zielposition wird durch die
linke obere Ecke des Rechtecks (DestRow,
DestColumn) festgelegt.
Falls mehr als ein Rechteck bewegt werden soll, können diese gleichzeitig (in Form von Tupeln) übergeben werden.
copy_rectangle ist dafür gedacht, aufbereitete Grafiken
aus einem „unsichtbaren“ Fenster in ein sichtbares Fenster zu
kopieren. Hierzu wird ein Fenster mit der Option 'buffer'
geöffnet. In dieses Fenster wird die Grafik ausgegeben und danach
in ein sichtbares Fenster kopiert. Der Vorteil dieser
Vorgehensweise besteht darin, dass copy_rectangle viel
schneller als Ausgabeprozeduren wie z.B. disp_channel
ist. Dies ist insbesondere bei Demo-Programmen von Vorteil. Es
lassen sich hiermit auch kurze „clips“ realisieren: Hierzu wird
für jedes Bild der Folge ein Fenster vom Typ 'buffer' angelegt und
die Daten darauf ausgegeben. Ausgegeben wird die Bildfolge, indem
alle Puffer nacheinander in ein sichtbares Fenster kopiert werden.
Beide Fenster müssen auf demselben Display liegen.
WindowHandleSource (input_control) window → (handle)
Nummer des Quellfensters.
WindowHandleDestination (input_control) window → (handle)
Nummer des Zielfensters.
Row1 (input_control) rectangle.origin.y(-array) → (integer)
Zeilenindex der linken oberen Ecke im Quellfenster.
Default: 0
Wertebereich:
0
≤
Row1
≤
511 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Column1 (input_control) rectangle.origin.x(-array) → (integer)
Spaltenindex der linken oberen Ecke im Quellfenster.
Default: 0
Wertebereich:
0
≤
Column1
≤
511 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Row2 (input_control) rectangle.corner.y(-array) → (integer)
Zeilenindex der rechten unteren Ecke im Quellfenster.
Default: 128
Wertebereich:
0
≤
Row2
≤
511 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion:
Row2 >= Row1
Column2 (input_control) rectangle.corner.x(-array) → (integer)
Spaltenindex der rechten unteren Ecke im Quellfenster.
Default: 128
Wertebereich:
0
≤
Column2
≤
511 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion:
Column2 >= Column1
DestRow (input_control) point.y(-array) → (integer)
Zeilenindex der linken oberen Ecke im Zielfenster.
Default: 0
Wertebereich:
0
≤
DestRow
≤
511 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
DestColumn (input_control) point.x(-array) → (integer)
Spaltenindex der linken oberen Ecke im Zielfenster.
Default: 0
Wertebereich:
0
≤
DestColumn
≤
511 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
read_image(Image,'monkey')
open_window(0,0,-1,-1,'root','buffer','',WindowHandleBuffer)
disp_obj(Image,WindowHandleBuffer)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
copy_rectangle(WindowHandleBuffer,WindowHandle,\
Row1, Column1, Row2, Column2,Row1,Column1)
close_window(WindowHandleBuffer)
Ist das Ausgabefenster gültig und sind die angegebenen Parameter korrekt,
dann liefert copy_rectangle den Wert 2 (
H_MSG_TRUE)
.
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Foundation