EncoderParameter Classe

Definizione

Utilizzato per passare un valore o una matrice di valori a un codificatore di immagini,

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

Esempio

Nell'esempio di codice seguente viene illustrato come creare un EncoderParameter oggetto usando il EncoderParameter costruttore . Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare il VaryQualityLevel metodo dal costruttore del modulo. Questo esempio richiede un file di immagine denominato TestPhoto.jpgin 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 EncoderParameter oggetto per ricevere un elenco di valori possibili supportati da un particolare parametro di un particolare codificatore di immagini.

Nota

In .NET 6 e versioni successive, il pacchetto System.Drawing.Common, che include questo tipo, è supportato solo nei sistemi operativi Windows. L'uso di questo tipo nelle app multipiattaforma causa avvisi in fase di compilazione ed eccezioni di runtime. Per altre informazioni, vedere System.Drawing.Common supportato solo in Windows.

Costruttori

EncoderParameter(Encoder, Byte)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero senza segno a 8 bit. Imposta la proprietà ValueType su ValueTypeByte e la proprietà NumberOfValues su 1.

EncoderParameter(Encoder, Byte, Boolean)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un valore a 8 bit. Imposta la proprietà ValueType su ValueTypeUndefined o su ValueTypeByte e la proprietà NumberOfValues su 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. Imposta la proprietà ValueType su ValueTypeByte e la proprietà NumberOfValues sul numero di elementi della matrice.

EncoderParameter(Encoder, Byte[], Boolean)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di byte. Imposta la proprietà ValueType su ValueTypeUndefined o su ValueTypeByte e la proprietà NumberOfValues sul numero di elementi della matrice.

EncoderParameter(Encoder, Int16)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero a 16 bit. Imposta la proprietà ValueType su ValueTypeShort e la proprietà NumberOfValues su 1.

EncoderParameter(Encoder, Int16[])

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi a 16 bit. Imposta la proprietà ValueType su ValueTypeShort e la proprietà NumberOfValues sul numero di elementi della matrice.

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.

EncoderParameter(Encoder, Int32, Int32)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una coppia di interi a 32 bit. La coppia di interi rappresenta una frazione, in cui il primo intero è il numeratore e il secondo è il denominatore. Imposta la proprietà ValueType su ValueTypeRational e la proprietà NumberOfValues su 1.

EncoderParameter(Encoder, Int32, Int32, Int32)
Obsoleti.
Obsoleti.
Obsoleti.

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.

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

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e quattro interi a 32 bit. I quattro interi rappresentano un intervallo di frazioni. I primi due interi rappresentano la frazione più piccola nell'intervallo, mentre gli altri due rappresentano la frazione più grande. Imposta la proprietà ValueType su ValueTypeRationalRange e la proprietà NumberOfValues su 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. Le due matrici rappresentano una matrice di frazioni. 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.

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. Le quattro matrici rappresentano intervalli razionali di una matrice. Un intervallo razionale è l'insieme di tutte le frazioni comprese tra un valore frazionario minimo e un valore frazionario massimo. 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.

EncoderParameter(Encoder, Int64)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero a 64 bit. Imposta la proprietà ValueType su ValueTypeLong (32 bit) e la proprietà NumberOfValues su 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. 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. Imposta la proprietà ValueType su ValueTypeLongRange e la proprietà NumberOfValues su 1.

EncoderParameter(Encoder, Int64[])

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi a 64 bit. Imposta la proprietà ValueType su ValueTypeLong (32 bit) e la proprietà NumberOfValues sul numero di elementi della matrice.

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

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e due matrici di interi a 64 bit. Le due matrici rappresentano intervalli di interi di una matrice. 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.

EncoderParameter(Encoder, String)

Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una stringa di caratteri. La stringa viene convertita in una stringa ASCII con terminazione null prima di essere archiviata nell'oggetto EncoderParameter. Imposta la proprietà ValueType su ValueTypeAscii e la proprietà NumberOfValues sulla lunghezza della stringa ASCII includendo il terminatore NULL.

Proprietà

Encoder

Ottiene o imposta l'oggetto Encoder associato all'oggetto EncoderParameter. L'oggetto Encoder incapsula il GUID che specifica la categoria, ad esempio Quality, ColorDepth o Compression, del parametro archiviato in questo oggetto EncoderParameter.

NumberOfValues

Ottiene il numero di elementi della matrice di valori archiviati nell'oggetto EncoderParameter.

Type

Ottiene il tipo di dati dei valori archiviati nell'oggetto EncoderParameter.

ValueType

Ottiene il tipo di dati dei valori archiviati nell'oggetto EncoderParameter.

Metodi

Dispose()

Rilascia tutte le risorse usate dall'oggetto EncoderParameter.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(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.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche