Partager via


EncoderParameter Classe

Définition

Utilisé pour passer une valeur ou un tableau de valeurs à un encodeur d'image.

public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
    interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
Héritage
EncoderParameter
Implémente

Exemples

L’exemple de code suivant montre comment créer un EncoderParameter à l’aide du EncoderParameter constructeur. Pour exécuter cet exemple, collez le code dans un Windows Form et appelez la VaryQualityLevel méthode à partir du constructeur du formulaire. Cet exemple nécessite un fichier image nommé TestPhoto.jpg dans c :\.

private void VaryQualityLevel()
{
    // Get a bitmap.
    Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg");
    ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);

    // Create an Encoder object based on the GUID
    // for the Quality parameter category.
    System.Drawing.Imaging.Encoder myEncoder =
        System.Drawing.Imaging.Encoder.Quality;

    // Create an EncoderParameters object.
    // An EncoderParameters object has an array of EncoderParameter
    // objects. In this case, there is only one
    // EncoderParameter object in the array.
    EncoderParameters myEncoderParameters = new EncoderParameters(1);

    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
    myEncoderParameters.Param[0] = myEncoderParameter;
    bmp1.Save(@"c:\TestPhotoQualityFifty.jpg", jpgEncoder, myEncoderParameters);

    myEncoderParameter = new EncoderParameter(myEncoder, 100L);
    myEncoderParameters.Param[0] = myEncoderParameter;
    bmp1.Save(@"c:\TestPhotoQualityHundred.jpg", jpgEncoder, myEncoderParameters);

    // Save the bitmap as a JPG file with zero quality level compression.
    myEncoderParameter = new EncoderParameter(myEncoder, 0L);
    myEncoderParameters.Param[0] = myEncoderParameter;
    bmp1.Save(@"c:\TestPhotoQualityZero.jpg", jpgEncoder, myEncoderParameters);
}
Private Sub VaryQualityLevel()
    ' Get a bitmap.
    Dim bmp1 As New Bitmap("c:\TestPhoto.jpg")
    Dim jpgEncoder As ImageCodecInfo = GetEncoder(ImageFormat.Jpeg)

    ' Create an Encoder object based on the GUID
    ' for the Quality parameter category.
    Dim myEncoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.Quality

    ' Create an EncoderParameters object.
    ' An EncoderParameters object has an array of EncoderParameter
    ' objects. In this case, there is only one
    ' EncoderParameter object in the array.
    Dim myEncoderParameters As New EncoderParameters(1)

    Dim myEncoderParameter As New EncoderParameter(myEncoder, 50&)
    myEncoderParameters.Param(0) = myEncoderParameter
    bmp1.Save("c:\TestPhotoQualityFifty.jpg", jpgEncoder, myEncoderParameters)

    myEncoderParameter = New EncoderParameter(myEncoder, 100&)
    myEncoderParameters.Param(0) = myEncoderParameter
    bmp1.Save("c:\TestPhotoQualityHundred.jpg", jpgEncoder, myEncoderParameters)

    ' Save the bitmap as a JPG file with zero quality level compression.
    myEncoderParameter = New EncoderParameter(myEncoder, 0&)
    myEncoderParameters.Param(0) = myEncoderParameter
    bmp1.Save("c:\TestPhotoQualityZero.jpg", jpgEncoder, myEncoderParameters)

End Sub
private ImageCodecInfo GetEncoder(ImageFormat format)
{
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

    foreach (ImageCodecInfo codec in codecs)
    {
        if (codec.FormatID == format.Guid)
        {
            return codec;
        }
    }
    
    return null;
}
Private Function GetEncoder(ByVal format As ImageFormat) As ImageCodecInfo

    Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders()

    Dim codec As ImageCodecInfo
    For Each codec In codecs
        If codec.FormatID = format.Guid Then
            Return codec
        End If
    Next codec
    Return Nothing

End Function

Remarques

Vous pouvez également utiliser un EncoderParameter objet pour recevoir une liste de valeurs possibles prises en charge par un paramètre particulier d’un encodeur d’image particulier.

Notes

Dans .NET 6 et versions ultérieures, le package System.Drawing.Common, qui inclut ce type, est uniquement pris en charge sur les systèmes d’exploitation Windows. L’utilisation de ce type dans les applications multiplateformes entraîne des avertissements au moment de la compilation et des exceptions au moment de l’exécution. Pour plus d’informations, consultez System.Drawing.Common uniquement pris en charge sur Windows.

Constructeurs

EncoderParameter(Encoder, Byte)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et un entier non signé 8 bits. Attribue à la propriété ValueType la valeur ValueTypeByte et à la propriété NumberOfValues la valeur 1.

EncoderParameter(Encoder, Byte, Boolean)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et une valeur 8 bits. Affecte ValueType ou ValueTypeUndefined à la propriété ValueTypeByte et 1 à la propriété NumberOfValues.

EncoderParameter(Encoder, Byte[])

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et un tableau d'entiers non signés 8 bits. Affecte ValueType à la propriété ValueTypeByte et le nombre d'éléments contenus dans le tableau à la propriété NumberOfValues.

EncoderParameter(Encoder, Byte[], Boolean)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et un tableau d'octets. Affecte ValueType ou ValueTypeUndefined à la propriété ValueTypeByte et le nombre d'éléments contenus dans le tableau à la propriété NumberOfValues.

EncoderParameter(Encoder, Int16)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et un entier 16 bits. Attribue à la propriété ValueType la valeur ValueTypeShort et à la propriété NumberOfValues la valeur 1.

EncoderParameter(Encoder, Int16[])

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et un tableau d'entiers 16 bits. Affecte ValueType à la propriété ValueTypeShort et le nombre d'éléments contenus dans le tableau à la propriété NumberOfValues.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié, le nombre de valeurs, le type de données des valeurs et un pointeur vers les valeurs stockées dans l'objet EncoderParameter.

EncoderParameter(Encoder, Int32, Int32)

Initialise une nouvelle instance de la classe EncoderParameter avec l’objet Encoder spécifié et une paire d’entiers 32 bits. La paire d’entiers représente une fraction, le premier étant le numérateur et le second le dénominateur. Attribue à la propriété ValueType la valeur ValueTypeRational et à la propriété NumberOfValues la valeur 1.

EncoderParameter(Encoder, Int32, Int32, Int32)
Obsolète.
Obsolète.
Obsolète.

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et trois entiers qui spécifient le nombre de valeurs, le type de données des valeurs et un pointeur vers les valeurs stockées dans l'objet EncoderParameter.

EncoderParameter(Encoder, Int32, Int32, Int32, Int32)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et quatre entiers 32 bits. Les quatre entiers représentent une plage de fractions. Les deux premiers entiers représentent la plus petite fraction de la plage et les deux autres entiers représentent la plus grande fraction de la plage. Attribue à la propriété ValueType la valeur ValueTypeRationalRange et à la propriété NumberOfValues la valeur 1.

EncoderParameter(Encoder, Int32[], Int32[])

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et deux tableaux d'entiers 32 bits. Les deux tableaux représentent un tableau de fractions. Affecte ValueType à la propriété ValueTypeRational et le nombre d'éléments contenus dans le tableau numerator, qui doit être identique à celui du tableau denominator, à la propriété NumberOfValues.

EncoderParameter(Encoder, Int32[], Int32[], Int32[], Int32[])

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et quatre tableaux d'entiers 32 bits. Les quatre tableaux représentent un tableau de plages rationnelles. Une plage rationnelle est l'ensemble des fractions comprises entre une valeur fractionnaire minimale et une valeur fractionnaire maximale. Affecte ValueType à la propriété ValueTypeRationalRange et le nombre d'éléments contenus dans le tableau numerator1, qui doit être identique à celui des trois autres tableaux, à la propriété NumberOfValues.

EncoderParameter(Encoder, Int64)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et un entier 64 bits. Affecte ValueType (32 bits) à la propriété ValueTypeLong et 1 à la propriété NumberOfValues.

EncoderParameter(Encoder, Int64, Int64)

Initialise une nouvelle instance de la classe EncoderParameter avec l’objet Encoder spécifié et une paire d’entiers 64 bits. La paire d'entiers représente une plage d'entiers, le premier entier étant le plus petit nombre de la plage et le second étant le plus grand nombre de la plage. Attribue à la propriété ValueType la valeur ValueTypeLongRange et à la propriété NumberOfValues la valeur 1.

EncoderParameter(Encoder, Int64[])

Initialise une nouvelle instance de la classe EncoderParameter avec l’objet Encoder spécifié et un tableau d’entiers 64 bits. Affecte ValueType (32 bits) à la propriété ValueTypeLong et le nombre d'éléments contenus dans le tableau à la propriété NumberOfValues.

EncoderParameter(Encoder, Int64[], Int64[])

Initialise une nouvelle instance de la classe EncoderParameter avec l’objet Encoder spécifié et deux tableaux d’entiers 64 bits. Les deux tableaux représentent un tableau de plages d'entiers. Affecte ValueType à la propriété ValueTypeLongRange et le nombre d'éléments contenus dans le tableau rangebegin, qui doit être identique à celui du tableau rangeend, à la propriété NumberOfValues.

EncoderParameter(Encoder, String)

Initialise une nouvelle instance de la classe EncoderParameter avec l'objet Encoder spécifié et une chaîne de caractères. La chaîne est convertie en chaîne ASCII se terminant par le caractère NULL avant d'être stockée dans l'objet EncoderParameter. Affecte ValueType à la propriété ValueTypeAscii et la longueur de la chaîne ASCII y compris la marque de fin NULL à la propriété NumberOfValues.

Propriétés

Encoder

Obtient ou définit l'objet Encoder associé à cet objet EncoderParameter. L'objet Encoder encapsule le GUID (Identificateur Global Unique) qui spécifie la catégorie (par exemple Quality, ColorDepth ou Compression) du paramètre stocké dans cet objet EncoderParameter.

NumberOfValues

Obtient le nombre d'éléments contenus dans le tableau des valeurs stockées dans cet objet EncoderParameter.

Type

Obtient le type de données des valeurs stockées dans cet objet EncoderParameter.

ValueType

Obtient le type de données des valeurs stockées dans cet objet EncoderParameter.

Méthodes

Dispose()

Libère toutes les ressources utilisées par cet objet EncoderParameter.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Finalize()

Permet à un objet EncoderParameterde tenter de libérer des ressources et d'effectuer d'autres opérations de nettoyage avant que l'objet EncoderParameter ne soit récupéré par l'opération de garbage collection.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi