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_rectangleCopyRectangleCopyRectangleCopyRectanglecopy_rectangle kopiert alle Pixel, die innerhalb des durch die Parameter Row1Row1Row1Row1row1row_1, Column1Column1Column1Column1column1column_1, Row2Row2Row2Row2row2row_2 und Column2Column2Column2Column2column2column_2 beschriebenen Rechtecks liegen, aus dem angegebenen Window mit der logischen Fensternummer WindowHandleSourceWindowHandleSourceWindowHandleSourceWindowHandleSourcewindowHandleSourcewindow_handle_source in das angegebene Window mit der logischen Fensternummer WindowHandleDestinationWindowHandleDestinationWindowHandleDestinationWindowHandleDestinationwindowHandleDestinationwindow_handle_destination. Die Zielposition wird durch die linke obere Ecke des Rechtecks (DestRowDestRowDestRowDestRowdestRowdest_row, DestColumnDestColumnDestColumnDestColumndestColumndest_column) festgelegt.

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

copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectanglecopy_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_rectangleCopyRectangleCopyRectangleCopyRectanglecopy_rectangle viel schneller als Ausgabeprozeduren wie z.B. disp_channeldisp_channelDispChannelDispChannelDispChanneldisp_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

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

Nummer des Quellfensters.

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

Nummer des Zielfensters.

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

Zeilenindex der linken oberen Ecke im Quellfenster.

Defaultwert: 0

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

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

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

Spaltenindex der linken oberen Ecke im Quellfenster.

Defaultwert: 0

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

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

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

Zeilenindex der rechten unteren Ecke im Quellfenster.

Defaultwert: 128

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

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Restriktion: Row2 >= Row1

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

Spaltenindex der rechten unteren Ecke im Quellfenster.

Defaultwert: 128

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

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Restriktion: Column2 >= Column1

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

Zeilenindex der linken oberen Ecke im Zielfenster.

Defaultwert: 0

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

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

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

Spaltenindex der linken oberen Ecke im Zielfenster.

Defaultwert: 0

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

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_rectangleCopyRectangleCopyRectangleCopyRectanglecopy_rectangle den Wert TRUE. Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

open_windowopen_windowOpenWindowOpenWindowOpenWindowopen_window

Nachfolger

close_windowclose_windowCloseWindowCloseWindowCloseWindowclose_window

Alternativen

move_rectanglemove_rectangleMoveRectangleMoveRectangleMoveRectanglemove_rectangle, slide_imageslide_imageSlideImageSlideImageSlideImageslide_image

Siehe auch

open_windowopen_windowOpenWindowOpenWindowOpenWindowopen_window

Modul

Foundation