EncoderParameter Classe

Definizione

Utilizzato per passare un valore o una matrice di valori a un codificatore di immagini,Used to pass a value, or an array of values, to an image encoder.

public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
    interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
Ereditarietà
EncoderParameter
Implementazioni

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come creare un EncoderParameter utilizzando il costruttore di EncoderParameter.The following code example demonstrates how to create a EncoderParameter using the EncoderParameter constructor. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare il metodo VaryQualityLevel dal costruttore del modulo.To run this example, paste the code into a Windows Form and call the VaryQualityLevel method from the form's constructor. Questo esempio richiede un file di immagine denominato TestPhoto.jpg situato in c:\.This example requires an image file named TestPhoto.jpg located at 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

Commenti

È anche possibile usare un oggetto EncoderParameter per ricevere un elenco di valori possibili supportati da un determinato parametro di un determinato codificatore di immagini.You can also use an EncoderParameter object to receive a list of possible values supported by a particular parameter of a particular image encoder.

Costruttori

EncoderParameter(Encoder, Byte)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero senza segno a 8 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one unsigned 8-bit integer. Imposta la proprietà ValueType su ValueTypeByte e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeByte, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Byte, Boolean)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un valore a 8 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one 8-bit value. Imposta la proprietà ValueType su ValueTypeUndefined o su ValueTypeByte e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeUndefined or ValueTypeByte, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Byte[])

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi senza segno a 8 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of unsigned 8-bit integers. Imposta la proprietà ValueType su ValueTypeByte e la proprietà NumberOfValues sul numero di elementi della matrice.Sets the ValueType property to ValueTypeByte, and sets the NumberOfValues property to the number of elements in the array.

EncoderParameter(Encoder, Byte[], Boolean)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di byte.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of bytes. Imposta la proprietà ValueType su ValueTypeUndefined o su ValueTypeByte e la proprietà NumberOfValues sul numero di elementi della matrice.Sets the ValueType property to ValueTypeUndefined or ValueTypeByte, and sets the NumberOfValues property to the number of elements in the array.

EncoderParameter(Encoder, Int16)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero a 16 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one, 16-bit integer. Imposta la proprietà ValueType su ValueTypeShort e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeShort, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Int16[])

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi a 16 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of 16-bit integers. Imposta la proprietà ValueType su ValueTypeShort e la proprietà NumberOfValues sul numero di elementi della matrice.Sets the ValueType property to ValueTypeShort, and sets the NumberOfValues property to the number of elements in the array.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato, il numero di valori, il tipo di dati dei valori e un puntatore ai valori archiviati nell'oggetto EncoderParameter.Initializes a new instance of the EncoderParameter class with the specified Encoder object, number of values, data type of the values, and a pointer to the values stored in the EncoderParameter object.

EncoderParameter(Encoder, Int32, Int32)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una coppia di interi a 32 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and a pair of 32-bit integers. La coppia di interi rappresenta una frazione, in cui il primo intero è il numeratore mentre il secondo è il denominatore.The pair of integers represents a fraction, the first integer being the numerator, and the second integer being the denominator. Imposta la proprietà ValueType su ValueTypeRational e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeRational, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Int32, Int32, Int32)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e tre interi che specificano il numero di valori, il tipo di dati dei valori e un puntatore ai valori archiviati nell'oggetto EncoderParameter.Initializes a new instance of the EncoderParameter class with the specified Encoder object and three integers that specify the number of values, the data type of the values, and a pointer to the values stored in the EncoderParameter object.

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

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e quattro interi a 32 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and four, 32-bit integers. I quattro interi rappresentano un intervallo di frazioni.The four integers represent a range of fractions. I primi due interi rappresentano la frazione più piccola nell'intervallo, mentre gli altri due rappresentano la frazione più grande.The first two integers represent the smallest fraction in the range, and the remaining two integers represent the largest fraction in the range. Imposta la proprietà ValueType su ValueTypeRationalRange e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeRationalRange, and sets the NumberOfValues property to 1.

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

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e due matrici di interi a 32 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and two arrays of 32-bit integers. Le due matrici rappresentano una matrice di frazioni.The two arrays represent an array of fractions. Imposta la proprietà ValueType su ValueTypeRational e la proprietà NumberOfValues sul numero di elementi della matrice numerator che deve corrispondere al numero di elementi della matrice denominator.Sets the ValueType property to ValueTypeRational, and sets the NumberOfValues property to the number of elements in the numerator array, which must be the same as the number of elements in the denominator array.

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

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e quattro matrici di interi a 32 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and four arrays of 32-bit integers. Le quattro matrici rappresentano intervalli razionali di una matrice.The four arrays represent an array rational ranges. Un intervallo razionale è l'insieme di tutte le frazioni comprese tra un valore frazionario minimo e un valore frazionario massimo.A rational range is the set of all fractions from a minimum fractional value through a maximum fractional value. Imposta la proprietà ValueType su ValueTypeRationalRange e la proprietà NumberOfValues sul numero di elementi della matrice numerator1 che deve corrispondere al numero di elementi delle altre tre matrici.Sets the ValueType property to ValueTypeRationalRange, and sets the NumberOfValues property to the number of elements in the numerator1 array, which must be the same as the number of elements in the other three arrays.

EncoderParameter(Encoder, Int64)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero a 64 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one 64-bit integer. Imposta la proprietà ValueType su ValueTypeLong (32 bit) e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeLong (32 bits), and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Int64, Int64)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una coppia di interi a 64 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and a pair of 64-bit integers. La coppia di interi rappresenta un intervallo di interi, in cui il primo valore corrisponde al numero più piccolo nell'intervallo e il secondo corrisponde al numero più grande.The pair of integers represents a range of integers, the first integer being the smallest number in the range, and the second integer being the largest number in the range. Imposta la proprietà ValueType su ValueTypeLongRange e la proprietà NumberOfValues su 1.Sets the ValueType property to ValueTypeLongRange, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Int64[])

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi a 64 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of 64-bit integers. Imposta la proprietà ValueType su ValueTypeLong (32 bit) e la proprietà NumberOfValues sul numero di elementi della matrice.Sets the ValueType property to ValueTypeLong (32-bit), and sets the NumberOfValues property to the number of elements in the array.

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

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e due matrici di interi a 64 bit.Initializes a new instance of the EncoderParameter class with the specified Encoder object and two arrays of 64-bit integers. Le due matrici rappresentano intervalli di interi di una matrice.The two arrays represent an array integer ranges. Imposta la proprietà ValueType su ValueTypeLongRange e la proprietà NumberOfValues sul numero di elementi della matrice rangebegin che deve corrispondere al numero di elementi della matrice rangeend.Sets the ValueType property to ValueTypeLongRange, and sets the NumberOfValues property to the number of elements in the rangebegin array, which must be the same as the number of elements in the rangeend array.

EncoderParameter(Encoder, String)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una stringa di caratteri.Initializes a new instance of the EncoderParameter class with the specified Encoder object and a character string. La stringa viene convertita in una stringa ASCII con terminazione null prima di essere archiviata nell'oggetto EncoderParameter.The string is converted to a null-terminated ASCII string before it is stored in the EncoderParameter object. Imposta la proprietà ValueType su ValueTypeAscii e la proprietà NumberOfValues sulla lunghezza della stringa ASCII includendo il terminatore NULL.Sets the ValueType property to ValueTypeAscii, and sets the NumberOfValues property to the length of the ASCII string including the NULL terminator.

Proprietà

Encoder

Ottiene o imposta l'oggetto Encoder associato all'oggetto EncoderParameter.Gets or sets the Encoder object associated with this EncoderParameter object. L'oggetto Encoder incapsula il GUID che specifica la categoria, ad esempio Quality, ColorDepth o Compression, del parametro archiviato in questo oggetto EncoderParameter.The Encoder object encapsulates the globally unique identifier (GUID) that specifies the category (for example Quality, ColorDepth, or Compression) of the parameter stored in this EncoderParameter object.

NumberOfValues

Ottiene il numero di elementi della matrice di valori archiviati nell'oggetto EncoderParameter.Gets the number of elements in the array of values stored in this EncoderParameter object.

Type

Ottiene il tipo di dati dei valori archiviati nell'oggetto EncoderParameter.Gets the data type of the values stored in this EncoderParameter object.

ValueType

Ottiene il tipo di dati dei valori archiviati nell'oggetto EncoderParameter.Gets the data type of the values stored in this EncoderParameter object.

Metodi

Dispose()

Rilascia tutte le risorse usate dall'oggetto EncoderParameter.Releases all resources used by this EncoderParameter object.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Finalize()

Consente a un oggetto EncoderParameter di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto EncoderParameter venga recuperato dalla procedura di Garbage Collection.Allows an EncoderParameter object to attempt to free resources and perform other cleanup operations before the EncoderParameter object is reclaimed by garbage collection.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a

Vedi anche