copy_rectangleT_copy_rectangleCopyRectangleCopyRectanglecopy_rectangle (Operator)

Name

copy_rectangleT_copy_rectangleCopyRectangleCopyRectanglecopy_rectangle — 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)

def copy_rectangle(window_handle_source: HHandle, window_handle_destination: HHandle, row_1: MaybeSequence[int], column_1: MaybeSequence[int], row_2: MaybeSequence[int], column_2: MaybeSequence[int], dest_row: MaybeSequence[int], dest_column: MaybeSequence[int]) -> None

Beschreibung

copy_rectanglecopy_rectangleCopyRectangleCopyRectanglecopy_rectangle kopiert alle Pixel, die innerhalb des durch die Parameter Row1Row1Row1row1row_1, Column1Column1Column1column1column_1, Row2Row2Row2row2row_2 und Column2Column2Column2column2column_2 beschriebenen Rechtecks liegen, aus dem angegebenen Window mit der logischen Fensternummer WindowHandleSourceWindowHandleSourceWindowHandleSourcewindowHandleSourcewindow_handle_source in das angegebene Window mit der logischen Fensternummer WindowHandleDestinationWindowHandleDestinationWindowHandleDestinationwindowHandleDestinationwindow_handle_destination. Die Zielposition wird durch die linke obere Ecke des Rechtecks (DestRowDestRowDestRowdestRowdest_row, DestColumnDestColumnDestColumndestColumndest_column) festgelegt.

Falls mehr als ein Rechteck bewegt werden soll, können diese gleichzeitig (in Form von Tupeln) übergeben werden.

copy_rectanglecopy_rectangleCopyRectangleCopyRectanglecopy_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_rectanglecopy_rectangleCopyRectangleCopyRectanglecopy_rectangle viel schneller als Ausgabeprozeduren wie z.B. disp_channeldisp_channelDispChannelDispChanneldisp_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.

Achtung

Beide Fenster müssen auf demselben Display liegen.

Ausführungsinformationen

Parameter

WindowHandleSourceWindowHandleSourceWindowHandleSourcewindowHandleSourcewindow_handle_source (input_control)  window HWindow, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Nummer des Quellfensters.

WindowHandleDestinationWindowHandleDestinationWindowHandleDestinationwindowHandleDestinationwindow_handle_destination (input_control)  window HWindow, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Nummer des Zielfensters.

Row1Row1Row1row1row_1 (input_control)  rectangle.origin.y(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenindex der linken oberen Ecke im Quellfenster.

Default: 0

Wertebereich: 0 ≤ Row1 Row1 Row1 row1 row_1 ≤ 511 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Column1Column1Column1column1column_1 (input_control)  rectangle.origin.x(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenindex der linken oberen Ecke im Quellfenster.

Default: 0

Wertebereich: 0 ≤ Column1 Column1 Column1 column1 column_1 ≤ 511 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Row2Row2Row2row2row_2 (input_control)  rectangle.corner.y(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenindex der rechten unteren Ecke im Quellfenster.

Default: 128

Wertebereich: 0 ≤ Row2 Row2 Row2 row2 row_2 ≤ 511 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Restriktion: Row2 >= Row1

Column2Column2Column2column2column_2 (input_control)  rectangle.corner.x(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenindex der rechten unteren Ecke im Quellfenster.

Default: 128

Wertebereich: 0 ≤ Column2 Column2 Column2 column2 column_2 ≤ 511 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Restriktion: Column2 >= Column1

DestRowDestRowDestRowdestRowdest_row (input_control)  point.y(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenindex der linken oberen Ecke im Zielfenster.

Default: 0

Wertebereich: 0 ≤ DestRow DestRow DestRow destRow dest_row ≤ 511 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

DestColumnDestColumnDestColumndestColumndest_column (input_control)  point.x(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenindex der linken oberen Ecke im Zielfenster.

Default: 0

Wertebereich: 0 ≤ DestColumn DestColumn DestColumn destColumn dest_column ≤ 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)

Ergebnis

Ist das Ausgabefenster gültig und sind die angegebenen Parameter korrekt, dann liefert copy_rectanglecopy_rectangleCopyRectangleCopyRectanglecopy_rectangle den Wert 2 ( H_MSG_TRUE) . Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

open_windowopen_windowOpenWindowOpenWindowopen_window

Nachfolger

close_windowclose_windowCloseWindowCloseWindowclose_window

Alternativen

move_rectanglemove_rectangleMoveRectangleMoveRectanglemove_rectangle, slide_imageslide_imageSlideImageSlideImageslide_image

Siehe auch

open_windowopen_windowOpenWindowOpenWindowopen_window

Modul

Foundation