set_partT_set_partSetPartSetPart (Operator)
Name
set_partT_set_partSetPartSetPart
— Verändern des darzustellenden Bildausschnitts.
Signatur
void SetPart(const HTuple& WindowHandle, const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2)
void HWindow::SetPart(const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2) const
void HWindow::SetPart(Hlong Row1, Hlong Column1, Hlong Row2, Hlong Column2) const
static void HOperatorSet.SetPart(HTuple windowHandle, HTuple row1, HTuple column1, HTuple row2, HTuple column2)
void HWindow.SetPart(HTuple row1, HTuple column1, HTuple row2, HTuple column2)
void HWindow.SetPart(int row1, int column1, int row2, int column2)
Beschreibung
set_partset_partSetPartSetPartSetPart
verändert den Bildausschnitt, der im
Ausgabefenster dargestellt wird.
(Row1Row1Row1Row1row1
,Column1Column1Column1Column1column1
) bezeichnet dabei den linken oberen und
(Row2Row2Row2Row2row2
,Column2Column2Column2Column2column2
) den rechten unteren Eckpunkt des
Ausschnitts. Er wird von allen Ausgaberoutinen sowohl für Grauwerte
disp_imagedisp_imageDispImageDispImageDispImage
, disp_colordisp_colorDispColorDispColorDispColor
als auch für Regionen
(disp_regiondisp_regionDispRegionDispRegionDispRegion
) beachtet.
Ist nur ein Teil eines Bildes darzustellen, wird dieser Ausschnitt auf die
volle Fenstergröße vergrößert. Die dafür eingesetzte Interpolations-
Methode kann mittels set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyle
eingestellt werden.
Die Daten des Bildausschnitts liefert der Operator get_partget_partGetPartGetPartGetPart
.
Wird die Fenstergröße an die Größe des anzuzeigenden Bildteils
angepasst, verhindert dies eine Verlangsamung der Anzeige durch notwendige
Interpolationen.
Daher ist das Fenster vorzugsweise gleich groß wie der anzuzeigende
Bildteil, oder ansonsten halb so groß, ein Viertel so groß,
etc.
Neben dem direkten Setzen des Bildausschnitts werden die folgenden
Sonderfälle unterstützt:
Row1Row1Row1Row1row1
= Column1Column1Column1Column1column1
=
Row2Row2Row2Row2row2
= Column2Column2Column2Column2column2
= -1:
-
Der Bildausschnitt entspricht genau der Fenstergröße, d.h. das
Bild wird nicht gezoomt, gegebenenfalls aber abgeschnitten.
Row1Row1Row1Row1row1
, Column1Column1Column1Column1column1
> -1 und
Row2Row2Row2Row2row2
= Column2Column2Column2Column2column2
= -1:
-
Der Bildausschnitt entspricht der Größe des letzten
dargestellten Bildes, d.h. das letzte Bild wird vollständig in
dem Fenster dargestellt und dafür gegebenenfalls gezoomt.
Row1Row1Row1Row1row1
= Column1Column1Column1Column1column1
= 0 und
Row2Row2Row2Row2row2
= Column2Column2Column2Column2column2
= -2:
-
Der Bildausschnitt wird so angepasst, dass das letzte dargestellte Bild
vollständig in das Fenster passt, wobei das Seitenverhältnis des Bildes
erhalten bleibt. Dafür wird das Bild gegebenenfalls gezoomt.
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
WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle
(input_control) window →
HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Fenster-Handle.
Row1Row1Row1Row1row1
(input_control) rectangle.origin.y →
HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Zeilennummer des linken oberen Eckpunkts des
Bildausschnitts.
Defaultwert: 0
Column1Column1Column1Column1column1
(input_control) rectangle.origin.x →
HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Spaltennummer des linken oberen Eckpunkts des
Bildausschnitts.
Defaultwert: 0
Row2Row2Row2Row2row2
(input_control) rectangle.corner.y →
HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Zeilennummer des rechten unteren Eckpunkts des
Bildausschnitts.
Defaultwert: -1
Restriktion: Row2 >= Row1 || Row2 == -1 || Row1 == 0 && Row2 == -2
Column2Column2Column2Column2column2
(input_control) rectangle.corner.x →
HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Spaltennummer des rechten unteren Eckpunkts des
Bildausschnitts
Defaultwert: -1
Restriktion: Column2 >= Column1 || Column2 == -1 || Column1 == 0 && Column2 == -2
Beispiel (HDevelop)
get_system('width',Width)
get_system('height',Height)
set_part(WindowHandle,0,0,Height-1,Width-1)
disp_image(Image,WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
Beispiel (C)
get_system("width",width);
get_system("height",height);
create_tuple_i(&twidth, width-1);
create_tuple_i(&theight, height-1);
create_tuple_i(&zero, 0);
T_set_part(WindowHandle,zero,zero,theight,twidth);
destroy_tuple(twidth); destroy_tuple(theight); destroy_tuple(zero);
T_disp_image(Image,WindowHandle);
T_draw_rectangle1(WindowHandle,&Row1,&Col1,&Row2,&Col2);
T_set_part(WindowHandle,Row1,Col1,Row2,Col2);
T_disp_image(Image,WindowHandle);
destroy_tuple(Row1); destroy_tuple(Col1);
destroy_tuple(Row2); destroy_tuple(Col2);
Beispiel (HDevelop)
get_system('width',Width)
get_system('height',Height)
set_part(WindowHandle,0,0,Height-1,Width-1)
disp_image(Image,WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
Beispiel (HDevelop)
get_system('width',Width)
get_system('height',Height)
set_part(WindowHandle,0,0,Height-1,Width-1)
disp_image(Image,WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
Beispiel (HDevelop)
get_system('width',Width)
get_system('height',Height)
set_part(WindowHandle,0,0,Height-1,Width-1)
disp_image(Image,WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
Ergebnis
set_partset_partSetPartSetPartSetPart
liefert den Wert 2 (H_MSG_TRUE), falls das Fenster gültig ist.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Vorgänger
get_partget_partGetPartGetPartGetPart
Nachfolger
set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyle
,
disp_imagedisp_imageDispImageDispImageDispImage
,
disp_regiondisp_regionDispRegionDispRegionDispRegion
Alternativen
affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
Siehe auch
get_partget_partGetPartGetPartGetPart
,
set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyle
,
disp_regiondisp_regionDispRegionDispRegionDispRegion
,
disp_imagedisp_imageDispImageDispImageDispImage
,
disp_colordisp_colorDispColorDispColorDispColor
Modul
Foundation