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 constructeur EncoderParameter. 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 à 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.

Note

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

Constructeurs

Nom Description
EncoderParameter(Encoder, Byte, Boolean)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et une valeur 8 bits. Définit la ValueType propriété sur ValueTypeUndefined ou ValueTypeByte, et définit la NumberOfValues propriété sur 1.

EncoderParameter(Encoder, Byte)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un entier non signé 8 bits. Définit la ValueType propriété ValueTypeBytesur , et définit la NumberOfValues propriété sur 1.

EncoderParameter(Encoder, Byte[], Boolean)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un tableau d’octets. Définit la ValueType propriété sur ValueTypeUndefined ou ValueTypeBytedéfinit la NumberOfValues propriété sur le nombre d’éléments du tableau.

EncoderParameter(Encoder, Byte[])

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un tableau d’entiers 8 bits non signés. Définit la ValueType propriété ValueTypeBytesur , et définit la NumberOfValues propriété sur le nombre d’éléments du tableau.

EncoderParameter(Encoder, Int16)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un entier 16 bits. Définit la ValueType propriété ValueTypeShortsur , et définit la NumberOfValues propriété sur 1.

EncoderParameter(Encoder, Int16[])

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un tableau d’entiers 16 bits. Définit la ValueType propriété ValueTypeShortsur , et définit la NumberOfValues propriété sur le nombre d’éléments du tableau.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder , 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 EncoderParameter classe avec l’objet spécifié Encoder 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 entiers restants représentent la plus grande fraction de la plage. Définit la ValueType propriété ValueTypeRationalRangesur , et définit la NumberOfValues propriété sur 1.

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

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder 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)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et une paire d’entiers 32 bits. La paire d’entiers représente une fraction, le premier entier étant le numérateur, et le deuxième entier étant le dénominateur. Définit la ValueType propriété ValueTypeRationalsur , et définit la NumberOfValues propriété sur 1.

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

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et quatre tableaux d’entiers 32 bits. Les quatre tableaux représentent des plages rationnelles de tableau. Une plage rationnelle est l’ensemble de toutes les fractions d’une valeur fractionnaire minimale par une valeur fractionnaire maximale. Définit la ValueType propriété ValueTypeRationalRangesur , et définit la NumberOfValues propriété sur le nombre d’éléments du numerator1 tableau, qui doit être identique au nombre d’éléments dans les trois autres tableaux.

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

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et deux tableaux d’entiers 32 bits. Les deux tableaux représentent un tableau de fractions. Définit la ValueType propriété ValueTypeRationalsur , et définit la NumberOfValues propriété sur le nombre d’éléments du numerator tableau, qui doivent être identiques au nombre d’éléments du denominator tableau.

EncoderParameter(Encoder, Int64, Int64)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder 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 deuxième entier étant le plus grand nombre de la plage. Définit la ValueType propriété ValueTypeLongRangesur , et définit la NumberOfValues propriété sur 1.

EncoderParameter(Encoder, Int64)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un entier 64 bits. Définit la ValueType propriété ValueTypeLong sur (32 bits) et définit la NumberOfValues propriété sur 1.

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

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et deux tableaux d’entiers 64 bits. Les deux tableaux représentent des plages d’entiers de tableau. Définit la ValueType propriété ValueTypeLongRangesur , et définit la NumberOfValues propriété sur le nombre d’éléments du rangebegin tableau, qui doivent être identiques au nombre d’éléments du rangeend tableau.

EncoderParameter(Encoder, Int64[])

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et un tableau d’entiers 64 bits. Définit la ValueType propriété ValueTypeLong sur (32 bits) et définit la NumberOfValues propriété sur le nombre d’éléments du tableau.

EncoderParameter(Encoder, String)

Initialise une nouvelle instance de la EncoderParameter classe avec l’objet spécifié Encoder et une chaîne de caractères. La chaîne est convertie en chaîne ASCII terminée par null avant qu’elle ne soit stockée dans l’objet EncoderParameter . Définit la ValueType propriété ValueTypeAsciisur , et définit la NumberOfValues propriété sur la longueur de la chaîne ASCII, y compris la marque de fin NULL.

Propriétés

Nom Description
Encoder

Obtient ou définit l’objet Encoder associé à cet EncoderParameter objet. L’objet Encoder encapsule l’identificateur global unique (GUID) qui spécifie la catégorie (par exempleQuality, ou ColorDepthCompression) du paramètre stocké dans cet EncoderParameter objet.

NumberOfValues

Obtient le nombre d’éléments dans le tableau de valeurs stockées dans cet EncoderParameter objet.

Type

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

ValueType

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

Méthodes

Nom Description
Dispose()

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

Equals(Object)

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

(Hérité de Object)
Finalize()

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

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

S’applique à

Voir aussi