set_partT_set_partSetPartSetPartset_part (Operator)
Name
set_partT_set_partSetPartSetPartset_part — 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_partSetPartSetPartSetPartset_part verändert den Bildausschnitt, der im
Ausgabefenster dargestellt wird.
(Row1Row1Row1Row1row1row_1,Column1Column1Column1Column1column1column_1) bezeichnet dabei den linken oberen und
(Row2Row2Row2Row2row2row_2,Column2Column2Column2Column2column2column_2) den rechten unteren Eckpunkt des
Ausschnitts. Er wird von allen Ausgaberoutinen sowohl für Grauwerte
disp_imagedisp_imageDispImageDispImageDispImagedisp_image, disp_colordisp_colorDispColorDispColorDispColordisp_color als auch für Regionen
(disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region) beachtet.
Ist nur ein Teil eines Bildes darzustellen, wird dieser Ausschnitt auf die
volle Fenstergröße vergrößert. Die dafür eingesetzte Interpolationsmethode
kann mittels set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyleset_part_style eingestellt werden.
Die Daten des Bildausschnitts liefert der Operator get_partget_partGetPartGetPartGetPartget_part.
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:
Row1Row1Row1Row1row1row_1 = Column1Column1Column1Column1column1column_1 =
Row2Row2Row2Row2row2row_2 = Column2Column2Column2Column2column2column_2 = -1:
-
Der Bildausschnitt entspricht genau der Fenstergröße, d.h. das
Bild wird nicht gezoomt, gegebenenfalls aber abgeschnitten.
Row1Row1Row1Row1row1row_1, Column1Column1Column1Column1column1column_1 > -1 und
Row2Row2Row2Row2row2row_2 = Column2Column2Column2Column2column2column_2 = -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.
Row1Row1Row1Row1row1row_1 = Column1Column1Column1Column1column1column_1 = 0 und
Row2Row2Row2Row2row2row_2 = Column2Column2Column2Column2column2column_2 = -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
WindowHandleWindowHandleWindowHandleWindowHandlewindowHandlewindow_handle (input_control) window → HWindow, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Fenster-Handle.
Row1Row1Row1Row1row1row_1 (input_control) rectangle.origin.y → HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Zeilennummer des linken oberen Eckpunkts des
Bildausschnitts.
Defaultwert: 0
Column1Column1Column1Column1column1column_1 (input_control) rectangle.origin.x → HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Spaltennummer des linken oberen Eckpunkts des
Bildausschnitts.
Defaultwert: 0
Row2Row2Row2Row2row2row_2 (input_control) rectangle.corner.y → HTupleUnion[int, float]HTupleHtuple (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
Column2Column2Column2Column2column2column_2 (input_control) rectangle.corner.x → HTupleUnion[int, float]HTupleHtuple (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_partSetPartSetPartSetPartset_part liefert den Wert TRUE, falls das Fenster gültig ist.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Vorgänger
get_partget_partGetPartGetPartGetPartget_part
Nachfolger
set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyleset_part_style,
disp_imagedisp_imageDispImageDispImageDispImagedisp_image,
disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region
Alternativen
affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImageaffine_trans_image
Siehe auch
get_partget_partGetPartGetPartGetPartget_part,
set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyleset_part_style,
disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region,
disp_imagedisp_imageDispImageDispImageDispImagedisp_image,
disp_colordisp_colorDispColorDispColorDispColordisp_color
Modul
Foundation