Faut il calculer les valeur des cotés en pixel pour simplifier le
redimensionnement en fonction de la résolution?
Comment faire pour que quel que soit la taille de l'écran l'image vue reste
à la même taille (réelle mesuré avec une regle par exemple) ?
Faut il calculer les valeur des cotés en pixel pour simplifier le
redimensionnement en fonction de la résolution?
Comment faire pour que quel que soit la taille de l'écran l'image vue reste
à la même taille (réelle mesuré avec une regle par exemple) ?
Faut il calculer les valeur des cotés en pixel pour simplifier le
redimensionnement en fonction de la résolution?
Comment faire pour que quel que soit la taille de l'écran l'image vue reste
à la même taille (réelle mesuré avec une regle par exemple) ?
Bonjour,
Tiens, un exemple pour changer la taille:
Dim taux As Single
Dim taux1 As Double
Dim taux2 As Double
'
On Error GoTo erreur
taux1 = 1
taux2 = 1
Picture2.Picture = LoadPicture(path)
taux1 = 1 / Picture2.Height * 10000
taux2 = 1 / Picture2.Height * 15000
If taux1 = taux2 Then taux = taux1
If taux1 < taux2 Then taux = taux1
If taux1 > taux2 Then taux = taux2
taux = Round(taux, 2)
If taux > 1 Then taux = 1
Picture1.Picture = LoadPicture()
Picture1.PaintPicture Picture2, 0, 0, Picture2.Width * taux,
Picture2.Height * taux
---fin---
Bonjour,
Tiens, un exemple pour changer la taille:
Dim taux As Single
Dim taux1 As Double
Dim taux2 As Double
'
On Error GoTo erreur
taux1 = 1
taux2 = 1
Picture2.Picture = LoadPicture(path)
taux1 = 1 / Picture2.Height * 10000
taux2 = 1 / Picture2.Height * 15000
If taux1 = taux2 Then taux = taux1
If taux1 < taux2 Then taux = taux1
If taux1 > taux2 Then taux = taux2
taux = Round(taux, 2)
If taux > 1 Then taux = 1
Picture1.Picture = LoadPicture()
Picture1.PaintPicture Picture2, 0, 0, Picture2.Width * taux,
Picture2.Height * taux
---fin---
Bonjour,
Tiens, un exemple pour changer la taille:
Dim taux As Single
Dim taux1 As Double
Dim taux2 As Double
'
On Error GoTo erreur
taux1 = 1
taux2 = 1
Picture2.Picture = LoadPicture(path)
taux1 = 1 / Picture2.Height * 10000
taux2 = 1 / Picture2.Height * 15000
If taux1 = taux2 Then taux = taux1
If taux1 < taux2 Then taux = taux1
If taux1 > taux2 Then taux = taux2
taux = Round(taux, 2)
If taux > 1 Then taux = 1
Picture1.Picture = LoadPicture()
Picture1.PaintPicture Picture2, 0, 0, Picture2.Width * taux,
Picture2.Height * taux
---fin---
"LE TROLL" <le a écrit dans le message de news:
%23TDIL9%Bonjour,
Tiens, un exemple pour changer la taille:
Dim taux As Single
Dim taux1 As Double
Dim taux2 As Double
'
On Error GoTo erreur
taux1 = 1
taux2 = 1
Picture2.Picture = LoadPicture(path)
taux1 = 1 / Picture2.Height * 10000
taux2 = 1 / Picture2.Height * 15000
If taux1 = taux2 Then taux = taux1
If taux1 < taux2 Then taux = taux1
If taux1 > taux2 Then taux = taux2
taux = Round(taux, 2)
If taux > 1 Then taux = 1
Picture1.Picture = LoadPicture()
Picture1.PaintPicture Picture2, 0, 0, Picture2.Width * taux,
Picture2.Height * taux
---fin---
Dans ce programme
Taux1=1 et Taux2=1 sont inutiles car on leur affecte une valeur deux
lignes en dessous
taux2 = 1 / Picture2.Height * 15000 est exactement la même chose que
taux2=1,5 *taux1
donc les trois "if" suivants sont parfaitement inutiles car seul le
deuxième donne une valeur de prédicat Vrai et donc taux vaut taux1, puis
sa valeur arrondie à deux chiffres après al virgule ce qui ne sert à rien
car les propriété width et height demandent des entiers et transforment
systématiquement la valeur affectée en long.
Voici l'aide de VB sur PaintPicture
PaintPicture, méthode
Dessine le contenu d'un fichier graphique (.bmp, .wmf, .emf, .cur, .ico ou
.dib) sur un objet Form, PictureBox ou Printer. Ne gère pas les arguments
nommés.
Syntaxe
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2,
height2, opcode
La syntaxe de la méthode PaintPicture comprend les éléments suivants :
object, Facultatif.Expression d'objet qui prend la valeur d'un objet
figurant dans la rubrique Application. Si l'élément object est omis,
l'objet Form qui a le focus est considéré comme object.
pictureSource du graphique à dessiner sur object. Doit correspondre à la
propriété Picture d'un objet Form ou PictureBox.
x1, y1 Valeurs en simple précision indiquant les coordonnées de
destination (axes x et y) sur l'élément object pour l'argument picture à
dessiner. La propriété ScaleMode de l'élément object détermine l'unité de
mesure à utiliser.
width1, Facultatif. Valeur en simple précision indiquant la largeur de
destination de picture. La propriété ScaleMode de l'élément object
détermine l'unité de mesure à utiliser. Si la largeur de destination est
supérieure ou inférieure à la largeur source (width2), l'argument picture
est élargi ou rétréci en conséquence. Si cet élément est omis, la largeur
source est utilisée.
height1, Facultatif. Valeur en simple précision indiquant la hauteur de
destination de picture. La propriété ScaleMode de l'élément object
détermine l'unité de mesure à utiliser. Si la hauteur de destination est
supérieure ou inférieure à la hauteur source (height2), l'argument picture
est élargi ou rétréci en conséquence. Si cet élément est omis, la hauteur
source est utilisée.
x2, y2 Facultatif. Valeurs en simple précision indiquant les coordonnées
(axes x et y) d'une zone de coupure à l'intérieur de l'argument picture.
La propriété ScaleMode de object détermine l'unité de mesure à utiliser.
Si cet élément est omis, la valeur par défaut est 0.
width2 Facultatif. Valeur en simple précision indiquant la largeur source
d'une zone de coupure à l'intérieur de l'argument picture. La propriété
ScaleMode de object détermine l'unité de mesure à utiliser. Si cet élément
est omis, la totalité de la largeur source est utilisée.
Heightt2 Facultatif. Valeur en simple précision indiquant la hauteur
source d'une zone de coupure à l'intérieur de l'argument picture. La
propriété ScaleMode de object détermine l'unité de mesure à utiliser. Si
cet élément est omis, la totalité de la hauteur source est utilisée.
opcode Facultatif. Valeur de type Long ou code utilisé uniquement avec les
images bitmap. Définit une opération au niveau du bit (par exemple, la
constante vbMergeCopy ou vbSrcAnd) qui est exécutée sur l'argument picture
à mesure qu'il est dessiné sur object. La liste complète des opérateurs au
niveau du bit figure dans la rubrique RasterOp, constantes de l'aide de
Visual Basic.
Il existe des limitations à l'utilisation des opcodes. Par exemple, vous
ne pouvez pas utiliser un opcode autre que vbSrcCopy si la source est une
icône ou un métafichier, et les opcodes qui interagissent avec le motif
(ou « brosse », en termes SDK) comme MERGECOPY, PATCOPY, PATPAINT et
PATINVERT interagissent en fait avec la propriété FillStyle de la
destination.
Note Opcode est utilisé pour passer une opération au niveau du bit sur
un bitmap. Placer une valeur dans cet argument lors du passage d'autres
types d'images cause une erreur « Argument ou appel de procédure
incorrect ». Ceci est voulu. Pour éviter cette erreur, laissez l'argument
Opcode à blanc pour toute autre image d'un bitmap.
Remarques
Vous pouvez retourner une image bitmap horizontalement ou verticalement en
attribuant des valeurs négatives à la hauteur de destination (height1)
et/ou à la largeur de destination (width1).
Vous pouvez omettre toutargument facultatif situé en fin de syntaxe. Si
vous omettez un ou plusieurs arguments facultatifs en fin de syntaxe,
n'indiquez pas de virgule après le dernier argument utilisé. Pour définir
un argument facultatif, vous devez préciser tous les arguments facultatifs
qui le précèdent dans lasyntaxe.
Notez qu'il existe une différence entre le chargement d'un .Bmp dans un
contrôle PictureBox et l'utilisation de la fonction API Windows BitBlt()
pour ajouter une image à ce contrôle. Lorsque vous utilisez BitBlt pour
afficher une image, le contrôle PictureBox ne sait pas comment la
redimmensionner comme il le fait avec la méthode LoadPicture.
L'affectation de la taille de l'image aux propriétés ScaleWidth et
ScaleHeight ne fonctionne pas. Si vous voulez que le contrôle PictureBox
prenne la taille de la nouvelle image après l'emploi de BitBlt, vous devez
le traiter manuellement par code, en convertissant les unités et en gérant
les bordures. Voici un exemple ci-dessous :
Sub RedimPictureBoxPourImage(pic as PictureBox, twipWd _
as Integer, twipHt as Integer)
' Ce code suppose que toutes les unités sont en twips.
' Si ce n'est pas le cas, effectuez la conversion
' en twips avant d'appeler cette routine.
' Il suppose aussi que l'image a été placée en 0,0
Dim BorderHt as Integer, BorderWd as Integer
BorderWd = Pic.Width - Pic.ScaleWidth
BorderHt = Pic.Height - Pic.ScaleHeight
pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
twipHt + BorderHt
End Sub
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
%23TDIL9%23kHHA.5024@TK2MSFTNGP06.phx.gbl...
Bonjour,
Tiens, un exemple pour changer la taille:
Dim taux As Single
Dim taux1 As Double
Dim taux2 As Double
'
On Error GoTo erreur
taux1 = 1
taux2 = 1
Picture2.Picture = LoadPicture(path)
taux1 = 1 / Picture2.Height * 10000
taux2 = 1 / Picture2.Height * 15000
If taux1 = taux2 Then taux = taux1
If taux1 < taux2 Then taux = taux1
If taux1 > taux2 Then taux = taux2
taux = Round(taux, 2)
If taux > 1 Then taux = 1
Picture1.Picture = LoadPicture()
Picture1.PaintPicture Picture2, 0, 0, Picture2.Width * taux,
Picture2.Height * taux
---fin---
Dans ce programme
Taux1=1 et Taux2=1 sont inutiles car on leur affecte une valeur deux
lignes en dessous
taux2 = 1 / Picture2.Height * 15000 est exactement la même chose que
taux2=1,5 *taux1
donc les trois "if" suivants sont parfaitement inutiles car seul le
deuxième donne une valeur de prédicat Vrai et donc taux vaut taux1, puis
sa valeur arrondie à deux chiffres après al virgule ce qui ne sert à rien
car les propriété width et height demandent des entiers et transforment
systématiquement la valeur affectée en long.
Voici l'aide de VB sur PaintPicture
PaintPicture, méthode
Dessine le contenu d'un fichier graphique (.bmp, .wmf, .emf, .cur, .ico ou
.dib) sur un objet Form, PictureBox ou Printer. Ne gère pas les arguments
nommés.
Syntaxe
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2,
height2, opcode
La syntaxe de la méthode PaintPicture comprend les éléments suivants :
object, Facultatif.Expression d'objet qui prend la valeur d'un objet
figurant dans la rubrique Application. Si l'élément object est omis,
l'objet Form qui a le focus est considéré comme object.
pictureSource du graphique à dessiner sur object. Doit correspondre à la
propriété Picture d'un objet Form ou PictureBox.
x1, y1 Valeurs en simple précision indiquant les coordonnées de
destination (axes x et y) sur l'élément object pour l'argument picture à
dessiner. La propriété ScaleMode de l'élément object détermine l'unité de
mesure à utiliser.
width1, Facultatif. Valeur en simple précision indiquant la largeur de
destination de picture. La propriété ScaleMode de l'élément object
détermine l'unité de mesure à utiliser. Si la largeur de destination est
supérieure ou inférieure à la largeur source (width2), l'argument picture
est élargi ou rétréci en conséquence. Si cet élément est omis, la largeur
source est utilisée.
height1, Facultatif. Valeur en simple précision indiquant la hauteur de
destination de picture. La propriété ScaleMode de l'élément object
détermine l'unité de mesure à utiliser. Si la hauteur de destination est
supérieure ou inférieure à la hauteur source (height2), l'argument picture
est élargi ou rétréci en conséquence. Si cet élément est omis, la hauteur
source est utilisée.
x2, y2 Facultatif. Valeurs en simple précision indiquant les coordonnées
(axes x et y) d'une zone de coupure à l'intérieur de l'argument picture.
La propriété ScaleMode de object détermine l'unité de mesure à utiliser.
Si cet élément est omis, la valeur par défaut est 0.
width2 Facultatif. Valeur en simple précision indiquant la largeur source
d'une zone de coupure à l'intérieur de l'argument picture. La propriété
ScaleMode de object détermine l'unité de mesure à utiliser. Si cet élément
est omis, la totalité de la largeur source est utilisée.
Heightt2 Facultatif. Valeur en simple précision indiquant la hauteur
source d'une zone de coupure à l'intérieur de l'argument picture. La
propriété ScaleMode de object détermine l'unité de mesure à utiliser. Si
cet élément est omis, la totalité de la hauteur source est utilisée.
opcode Facultatif. Valeur de type Long ou code utilisé uniquement avec les
images bitmap. Définit une opération au niveau du bit (par exemple, la
constante vbMergeCopy ou vbSrcAnd) qui est exécutée sur l'argument picture
à mesure qu'il est dessiné sur object. La liste complète des opérateurs au
niveau du bit figure dans la rubrique RasterOp, constantes de l'aide de
Visual Basic.
Il existe des limitations à l'utilisation des opcodes. Par exemple, vous
ne pouvez pas utiliser un opcode autre que vbSrcCopy si la source est une
icône ou un métafichier, et les opcodes qui interagissent avec le motif
(ou « brosse », en termes SDK) comme MERGECOPY, PATCOPY, PATPAINT et
PATINVERT interagissent en fait avec la propriété FillStyle de la
destination.
Note Opcode est utilisé pour passer une opération au niveau du bit sur
un bitmap. Placer une valeur dans cet argument lors du passage d'autres
types d'images cause une erreur « Argument ou appel de procédure
incorrect ». Ceci est voulu. Pour éviter cette erreur, laissez l'argument
Opcode à blanc pour toute autre image d'un bitmap.
Remarques
Vous pouvez retourner une image bitmap horizontalement ou verticalement en
attribuant des valeurs négatives à la hauteur de destination (height1)
et/ou à la largeur de destination (width1).
Vous pouvez omettre toutargument facultatif situé en fin de syntaxe. Si
vous omettez un ou plusieurs arguments facultatifs en fin de syntaxe,
n'indiquez pas de virgule après le dernier argument utilisé. Pour définir
un argument facultatif, vous devez préciser tous les arguments facultatifs
qui le précèdent dans lasyntaxe.
Notez qu'il existe une différence entre le chargement d'un .Bmp dans un
contrôle PictureBox et l'utilisation de la fonction API Windows BitBlt()
pour ajouter une image à ce contrôle. Lorsque vous utilisez BitBlt pour
afficher une image, le contrôle PictureBox ne sait pas comment la
redimmensionner comme il le fait avec la méthode LoadPicture.
L'affectation de la taille de l'image aux propriétés ScaleWidth et
ScaleHeight ne fonctionne pas. Si vous voulez que le contrôle PictureBox
prenne la taille de la nouvelle image après l'emploi de BitBlt, vous devez
le traiter manuellement par code, en convertissant les unités et en gérant
les bordures. Voici un exemple ci-dessous :
Sub RedimPictureBoxPourImage(pic as PictureBox, twipWd _
as Integer, twipHt as Integer)
' Ce code suppose que toutes les unités sont en twips.
' Si ce n'est pas le cas, effectuez la conversion
' en twips avant d'appeler cette routine.
' Il suppose aussi que l'image a été placée en 0,0
Dim BorderHt as Integer, BorderWd as Integer
BorderWd = Pic.Width - Pic.ScaleWidth
BorderHt = Pic.Height - Pic.ScaleHeight
pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
twipHt + BorderHt
End Sub
"LE TROLL" <le a écrit dans le message de news:
%23TDIL9%Bonjour,
Tiens, un exemple pour changer la taille:
Dim taux As Single
Dim taux1 As Double
Dim taux2 As Double
'
On Error GoTo erreur
taux1 = 1
taux2 = 1
Picture2.Picture = LoadPicture(path)
taux1 = 1 / Picture2.Height * 10000
taux2 = 1 / Picture2.Height * 15000
If taux1 = taux2 Then taux = taux1
If taux1 < taux2 Then taux = taux1
If taux1 > taux2 Then taux = taux2
taux = Round(taux, 2)
If taux > 1 Then taux = 1
Picture1.Picture = LoadPicture()
Picture1.PaintPicture Picture2, 0, 0, Picture2.Width * taux,
Picture2.Height * taux
---fin---
Dans ce programme
Taux1=1 et Taux2=1 sont inutiles car on leur affecte une valeur deux
lignes en dessous
taux2 = 1 / Picture2.Height * 15000 est exactement la même chose que
taux2=1,5 *taux1
donc les trois "if" suivants sont parfaitement inutiles car seul le
deuxième donne une valeur de prédicat Vrai et donc taux vaut taux1, puis
sa valeur arrondie à deux chiffres après al virgule ce qui ne sert à rien
car les propriété width et height demandent des entiers et transforment
systématiquement la valeur affectée en long.
Voici l'aide de VB sur PaintPicture
PaintPicture, méthode
Dessine le contenu d'un fichier graphique (.bmp, .wmf, .emf, .cur, .ico ou
.dib) sur un objet Form, PictureBox ou Printer. Ne gère pas les arguments
nommés.
Syntaxe
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2,
height2, opcode
La syntaxe de la méthode PaintPicture comprend les éléments suivants :
object, Facultatif.Expression d'objet qui prend la valeur d'un objet
figurant dans la rubrique Application. Si l'élément object est omis,
l'objet Form qui a le focus est considéré comme object.
pictureSource du graphique à dessiner sur object. Doit correspondre à la
propriété Picture d'un objet Form ou PictureBox.
x1, y1 Valeurs en simple précision indiquant les coordonnées de
destination (axes x et y) sur l'élément object pour l'argument picture à
dessiner. La propriété ScaleMode de l'élément object détermine l'unité de
mesure à utiliser.
width1, Facultatif. Valeur en simple précision indiquant la largeur de
destination de picture. La propriété ScaleMode de l'élément object
détermine l'unité de mesure à utiliser. Si la largeur de destination est
supérieure ou inférieure à la largeur source (width2), l'argument picture
est élargi ou rétréci en conséquence. Si cet élément est omis, la largeur
source est utilisée.
height1, Facultatif. Valeur en simple précision indiquant la hauteur de
destination de picture. La propriété ScaleMode de l'élément object
détermine l'unité de mesure à utiliser. Si la hauteur de destination est
supérieure ou inférieure à la hauteur source (height2), l'argument picture
est élargi ou rétréci en conséquence. Si cet élément est omis, la hauteur
source est utilisée.
x2, y2 Facultatif. Valeurs en simple précision indiquant les coordonnées
(axes x et y) d'une zone de coupure à l'intérieur de l'argument picture.
La propriété ScaleMode de object détermine l'unité de mesure à utiliser.
Si cet élément est omis, la valeur par défaut est 0.
width2 Facultatif. Valeur en simple précision indiquant la largeur source
d'une zone de coupure à l'intérieur de l'argument picture. La propriété
ScaleMode de object détermine l'unité de mesure à utiliser. Si cet élément
est omis, la totalité de la largeur source est utilisée.
Heightt2 Facultatif. Valeur en simple précision indiquant la hauteur
source d'une zone de coupure à l'intérieur de l'argument picture. La
propriété ScaleMode de object détermine l'unité de mesure à utiliser. Si
cet élément est omis, la totalité de la hauteur source est utilisée.
opcode Facultatif. Valeur de type Long ou code utilisé uniquement avec les
images bitmap. Définit une opération au niveau du bit (par exemple, la
constante vbMergeCopy ou vbSrcAnd) qui est exécutée sur l'argument picture
à mesure qu'il est dessiné sur object. La liste complète des opérateurs au
niveau du bit figure dans la rubrique RasterOp, constantes de l'aide de
Visual Basic.
Il existe des limitations à l'utilisation des opcodes. Par exemple, vous
ne pouvez pas utiliser un opcode autre que vbSrcCopy si la source est une
icône ou un métafichier, et les opcodes qui interagissent avec le motif
(ou « brosse », en termes SDK) comme MERGECOPY, PATCOPY, PATPAINT et
PATINVERT interagissent en fait avec la propriété FillStyle de la
destination.
Note Opcode est utilisé pour passer une opération au niveau du bit sur
un bitmap. Placer une valeur dans cet argument lors du passage d'autres
types d'images cause une erreur « Argument ou appel de procédure
incorrect ». Ceci est voulu. Pour éviter cette erreur, laissez l'argument
Opcode à blanc pour toute autre image d'un bitmap.
Remarques
Vous pouvez retourner une image bitmap horizontalement ou verticalement en
attribuant des valeurs négatives à la hauteur de destination (height1)
et/ou à la largeur de destination (width1).
Vous pouvez omettre toutargument facultatif situé en fin de syntaxe. Si
vous omettez un ou plusieurs arguments facultatifs en fin de syntaxe,
n'indiquez pas de virgule après le dernier argument utilisé. Pour définir
un argument facultatif, vous devez préciser tous les arguments facultatifs
qui le précèdent dans lasyntaxe.
Notez qu'il existe une différence entre le chargement d'un .Bmp dans un
contrôle PictureBox et l'utilisation de la fonction API Windows BitBlt()
pour ajouter une image à ce contrôle. Lorsque vous utilisez BitBlt pour
afficher une image, le contrôle PictureBox ne sait pas comment la
redimmensionner comme il le fait avec la méthode LoadPicture.
L'affectation de la taille de l'image aux propriétés ScaleWidth et
ScaleHeight ne fonctionne pas. Si vous voulez que le contrôle PictureBox
prenne la taille de la nouvelle image après l'emploi de BitBlt, vous devez
le traiter manuellement par code, en convertissant les unités et en gérant
les bordures. Voici un exemple ci-dessous :
Sub RedimPictureBoxPourImage(pic as PictureBox, twipWd _
as Integer, twipHt as Integer)
' Ce code suppose que toutes les unités sont en twips.
' Si ce n'est pas le cas, effectuez la conversion
' en twips avant d'appeler cette routine.
' Il suppose aussi que l'image a été placée en 0,0
Dim BorderHt as Integer, BorderWd as Integer
BorderWd = Pic.Width - Pic.ScaleWidth
BorderHt = Pic.Height - Pic.ScaleHeight
pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
twipHt + BorderHt
End Sub
Avec quelle valeur dois-je travailler à votre avis avant de passer en c m?En Twip ou en pixel ?
Comment changer par le code la valeur de la "qualité de couleur" et aus si la valeur du zoom(un peu un truc de taré la!)
Avec quelle valeur dois-je travailler à votre avis avant de passer en c m?En Twip ou en pixel ?
Comment changer par le code la valeur de la "qualité de couleur" et aus si la valeur du zoom(un peu un truc de taré la!)
Avec quelle valeur dois-je travailler à votre avis avant de passer en c m?En Twip ou en pixel ?
Comment changer par le code la valeur de la "qualité de couleur" et aus si la valeur du zoom(un peu un truc de taré la!)
>Comment changer par le code la valeur de la "qualité de couleur" et a ussi la valeur du zoom(un peu un truc de taré la!)??????
>Comment changer par le code la valeur de la "qualité de couleur" et a ussi la valeur du zoom(un peu un truc de taré la!)??????
>Comment changer par le code la valeur de la "qualité de couleur" et a ussi la valeur du zoom(un peu un truc de taré la!)??????
>Comment changer par le code la valeur de la "qualité de couleur"? (32 bit,16bit, ect)
>Comment changer par le code la valeur de la "qualité de couleur"? (32 bit,16bit, ect)
>Comment changer par le code la valeur de la "qualité de couleur"? (32 bit,16bit, ect)