copy_rectangleT_copy_rectangleCopyRectangleCopyRectangle (Operator)

Name

copy_rectangleT_copy_rectangleCopyRectangleCopyRectangle — Kopieren aller Pixel eines Rechtecks zwischen Ausgabefenstern.

Signatur

copy_rectangle( : : WindowHandleSource, WindowHandleDestination, Row1, Column1, Row2, Column2, DestRow, DestColumn : )

Herror T_copy_rectangle(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 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

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