copy_rectangleT_copy_rectangleCopyRectangleCopyRectangle (Operator)
Name
copy_rectangleT_copy_rectangleCopyRectangleCopyRectangle
— Kopieren aller Pixel eines Rechtecks zwischen Ausgabefenstern.
Signatur
void CopyRectangle(const HTuple& WindowHandleSource, const HTuple& WindowHandleDestination, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, const HTuple& DestRow, const HTuple& DestColumn)
void HWindow::CopyRectangle(const HWindow& WindowHandleDestination, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2, const HTuple& DestRow, const HTuple& DestColumn) const
void HWindow::CopyRectangle(const HWindow& WindowHandleDestination, Hlong Row1, Hlong Column1, Hlong Row2, Hlong Column2, Hlong DestRow, Hlong DestColumn) const
static void HOperatorSet.CopyRectangle(HTuple windowHandleSource, HTuple windowHandleDestination, HTuple row1, HTuple column1, HTuple row2, HTuple column2, HTuple destRow, HTuple destColumn)
void HWindow.CopyRectangle(HWindow windowHandleDestination, HTuple row1, HTuple column1, HTuple row2, HTuple column2, HTuple destRow, HTuple destColumn)
void HWindow.CopyRectangle(HWindow windowHandleDestination, int row1, int column1, int row2, int column2, int destRow, int destColumn)
Beschreibung
copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle
kopiert alle Pixel, die innerhalb des durch
die Parameter Row1Row1Row1Row1row1
, Column1Column1Column1Column1column1
, Row2Row2Row2Row2row2
und
Column2Column2Column2Column2column2
beschriebenen Rechtecks liegen, aus dem angegebenen
Window mit der logischen Fensternummer WindowHandleSourceWindowHandleSourceWindowHandleSourceWindowHandleSourcewindowHandleSource
in das angegebene Window mit der logischen Fensternummer
WindowHandleDestinationWindowHandleDestinationWindowHandleDestinationWindowHandleDestinationwindowHandleDestination
. Die Zielposition wird durch die
linke obere Ecke des Rechtecks (DestRowDestRowDestRowDestRowdestRow
,
DestColumnDestColumnDestColumnDestColumndestColumn
) festgelegt.
Falls mehr als ein Rechteck bewegt werden soll, können diese
gleichzeitig (in Form von Tupeln) übergeben werden.
copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle
ist dafür gedacht, aufbereitete Graphiken
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 Graphik ausgegeben und danach
in ein sichtbares Fenster kopiert. Der Vorteil dieser
Vorgehensweise besteht darin, dass copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle
viel
schneller als Ausgabeprozeduren wie z.B. disp_channeldisp_channelDispChannelDispChannelDispChannel
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.
Achtung
Beide Fenster müssen auf demselben Display liegen.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
WindowHandleSourceWindowHandleSourceWindowHandleSourceWindowHandleSourcewindowHandleSource
(input_control) window →
HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Nummer des Quellfensters.
WindowHandleDestinationWindowHandleDestinationWindowHandleDestinationWindowHandleDestinationwindowHandleDestination
(input_control) window →
HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Nummer des Zielfensters.
Row1Row1Row1Row1row1
(input_control) rectangle.origin.y(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex der linken oberen Ecke im Quellfenster.
Defaultwert: 0
Typischer Wertebereich: 0
≤
Row1
Row1
Row1
Row1
row1
≤
511
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Column1Column1Column1Column1column1
(input_control) rectangle.origin.x(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex der linken oberen Ecke im Quellfenster.
Defaultwert: 0
Typischer Wertebereich: 0
≤
Column1
Column1
Column1
Column1
column1
≤
511
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Row2Row2Row2Row2row2
(input_control) rectangle.corner.y(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex der rechten unteren Ecke im Quellfenster.
Defaultwert: 128
Typischer Wertebereich: 0
≤
Row2
Row2
Row2
Row2
row2
≤
511
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: Row2 >= Row1
Column2Column2Column2Column2column2
(input_control) rectangle.corner.x(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex der rechten unteren Ecke im Quellfenster.
Defaultwert: 128
Typischer Wertebereich: 0
≤
Column2
Column2
Column2
Column2
column2
≤
511
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: Column2 >= Column1
DestRowDestRowDestRowDestRowdestRow
(input_control) point.y(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex des linken oberen Ecks im Zielfenster.
Defaultwert: 0
Typischer Wertebereich: 0
≤
DestRow
DestRow
DestRow
DestRow
destRow
≤
511
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
DestColumnDestColumnDestColumnDestColumndestColumn
(input_control) point.x(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex des linken oberen Ecks im Zielfenster.
Defaultwert: 0
Typischer Wertebereich: 0
≤
DestColumn
DestColumn
DestColumn
DestColumn
destColumn
≤
511
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Beispiel (HDevelop)
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)
Beispiel (C)
read_image(Image,"monkey");
open_window(0,0,-1,-1,"root","buffer","",&WindowHandle);
disp_image(Image,WindowHandle);
open_window(0,0,-1,-1,"root","visible","",&WindowHandleDestination);
do {
get_mbutton(WindowHandleDestination,&Row,&Column,&Button);
copy_rectangle(BufferID,WindowHandleDestination,90,120,390,Row,Column);
}
while(Button > 1);
close_window(WindowHandleDestination);
close_window(WindowHandle);
Beispiel (HDevelop)
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)
Beispiel (HDevelop)
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)
Beispiel (HDevelop)
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)
Ergebnis
Ist das Ausgabefenster gültig und sind die angegebenen Parameter korrekt,
dann liefert copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle
den Wert 2 (H_MSG_TRUE).
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
open_windowopen_windowOpenWindowOpenWindowOpenWindow
Nachfolger
close_windowclose_windowCloseWindowCloseWindowCloseWindow
Alternativen
move_rectanglemove_rectangleMoveRectangleMoveRectangleMoveRectangle
,
slide_imageslide_imageSlideImageSlideImageSlideImage
Siehe auch
open_windowopen_windowOpenWindowOpenWindowOpenWindow
Modul
Foundation