Operator Reference
copy_rectangle (Operator)
copy_rectangle — Copy all pixels within rectangles between output windows.
Signature
copy_rectangle( : : WindowHandleSource, WindowHandleDestination, Row1, Column1, Row2, Column2, DestRow, DestColumn : )
Description
copy_rectangle copies all pixels from the window
WindowHandleSource in the
window
WindowHandleDestination. It copies pixels which reside
inside a rectangle which is specified by parameters Row1,
Column1, Row2 and Column2. The target
position is specified through the upper left corner of the rectangle
(DestRow, DestColumn).
If you want to move more than one rectangle, you may pass them at once (in form of the tuple mode).
You may use copy_rectangle to copy edited graphics from an
“invisible” window in a visible window. Therefore a window with
the option 'buffer' is opened. The graphics is then displayed in
this window and is copied in a visible window afterwards. The
advantage of this strategy is, that copy_rectangle is much
more rapid than output operators as, e.g., disp_channel. This
means a particular advantage while using demo programs. You could
even realize short “clips”: you have to create for every image of
a sequence a window of a 'buffer' type and pass the data into
it. Output is the image sequence whereat all buffers are copied one
after another in a visible window.
Attention
Both windows have to reside on the same display.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
WindowHandleSource (input_control) window → (handle)
Source window handle.
WindowHandleDestination (input_control) window → (handle)
Destination window handle.
Row1 (input_control) rectangle.origin.y(-array) → (integer)
Row index of upper left corner in the source window.
Default: 0
Value range:
0
≤
Row1
≤
511 (lin)
Minimum increment: 1
Recommended increment: 1
Column1 (input_control) rectangle.origin.x(-array) → (integer)
Column index of upper left corner in the source window.
Default: 0
Value range:
0
≤
Column1
≤
511 (lin)
Minimum increment: 1
Recommended increment: 1
Row2 (input_control) rectangle.corner.y(-array) → (integer)
Row index of lower right corner in the source window.
Default: 128
Value range:
0
≤
Row2
≤
511 (lin)
Minimum increment: 1
Recommended increment: 1
Restriction:
Row2 >= Row1
Column2 (input_control) rectangle.corner.x(-array) → (integer)
Column index of lower right corner in the source window.
Default: 128
Value range:
0
≤
Column2
≤
511 (lin)
Minimum increment: 1
Recommended increment: 1
Restriction:
Column2 >= Column1
DestRow (input_control) point.y(-array) → (integer)
Row index of upper left corner in the target window.
Default: 0
Value range:
0
≤
DestRow
≤
511 (lin)
Minimum increment: 1
Recommended increment: 1
DestColumn (input_control) point.x(-array) → (integer)
Column index of upper left corner in the target window.
Default: 0
Value range:
0
≤
DestColumn
≤
511 (lin)
Minimum increment: 1
Recommended increment: 1
Example (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)
Result
If the output window is valid and if the specified parameters are correct
close_window returns 2 (
H_MSG_TRUE)
.
If necessary an exception is raised.
Possible Predecessors
Possible Successors
Alternatives
See also
Module
Foundation