Freigeben über


EncoderParameter Klasse

Definition

Wird verwendet, um einen Wert oder ein Array von Werten an einen Bildencoder zu übergeben.

public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
    interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
Vererbung
EncoderParameter
Implementiert

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe des EncoderParameter -Konstruktors erstellt EncoderParameter wird. Um dieses Beispiel auszuführen, fügen Sie den Code in ein Windows Form-Format ein, und rufen Sie die VaryQualityLevel -Methode aus dem Konstruktor des Formulars auf. Für dieses Beispiel ist eine Bilddatei namens TestPhoto.jpg unter c:\erforderlich.

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

Hinweise

Sie können auch ein EncoderParameter -Objekt verwenden, um eine Liste möglicher Werte zu erhalten, die von einem bestimmten Parameter eines bestimmten Bildencoders unterstützt werden.

Hinweis

In .NET 6 und höheren Versionen wird das System.Drawing.Common-Paket, das diesen Typ enthält, nur unter Windows-Betriebssystemen unterstützt. Die Verwendung dieses Typs in plattformübergreifenden Apps verursacht Kompilierzeitwarnungen und Laufzeitausnahmen. Weitere Informationen finden Sie unter System.Drawing.Common wird nur unter Windows unterstützt.

Konstruktoren

EncoderParameter(Encoder, Byte)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einer 8-Bit-Ganzzahl ohne Vorzeichen. Legt die ValueType-Eigenschaft auf ValueTypeByte und die NumberOfValues-Eigenschaft auf 1 fest.

EncoderParameter(Encoder, Byte, Boolean)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem 8-Bit-Wert. Legt die ValueType-Eigenschaft auf ValueTypeUndefined oder ValueTypeByte und die NumberOfValues-Eigenschaft auf 1 fest.

EncoderParameter(Encoder, Byte[])

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem Array von 8-Bit-Ganzzahlen ohne Vorzeichen. Legt die ValueType-Eigenschaft auf ValueTypeByte und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im Array fest.

EncoderParameter(Encoder, Byte[], Boolean)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem Bytearray. Legt die ValueType-Eigenschaft auf ValueTypeUndefined oder ValueTypeByte und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im Array fest.

EncoderParameter(Encoder, Int16)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einer 16-Bit-Ganzzahl. Legt die ValueType-Eigenschaft auf ValueTypeShort und die NumberOfValues-Eigenschaft auf 1 fest.

EncoderParameter(Encoder, Int16[])

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem Array von 16-Bit-Ganzzahlen. Legt die ValueType-Eigenschaft auf ValueTypeShort und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im Array fest.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und drei ganzen Zahlen, die die Anzahl von Werten, den Datentyp der Werte und einen Zeiger auf die im EncoderParameter-Objekt gespeicherten Werte angeben.

EncoderParameter(Encoder, Int32, Int32)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem Paar von 32-Bit-Ganzzahlen. Die beiden Ganzzahlen stellen einen Bruch dar, wobei die erste ganze Zahl der Zähler und die zweite ganze Zahl der Nenner ist. Legt die ValueType-Eigenschaft auf ValueTypeRational und die NumberOfValues-Eigenschaft auf 1 fest.

EncoderParameter(Encoder, Int32, Int32, Int32)
Veraltet.
Veraltet.
Veraltet.

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und drei ganzen Zahlen, die die Anzahl von Werten, den Datentyp der Werte und einen Zeiger auf die im EncoderParameter-Objekt gespeicherten Werte angeben.

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

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und vier 32-Bit-Ganzzahlen. Die vier ganzen Zahlen stellen einen Bereich von Bruchzahlen dar. Die ersten beiden ganzen Zahlen stellen die kleinste Bruchzahl im Bereich dar, und die beiden anderen ganzen Zahlen stellen die größte Bruchzahl im Bereich dar. Legt die ValueType-Eigenschaft auf ValueTypeRationalRange und die NumberOfValues-Eigenschaft auf 1 fest.

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

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und zwei Arrays von 32-Bit-Ganzzahlen. Die beiden Arrays stellen ein Array von Bruchzahlen dar. Legt die ValueType-Eigenschaft auf ValueTypeRational und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im numerator-Array fest, die gleich der Anzahl der Elemente im denominator-Array sein muss.

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

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und vier Arrays von 32-Bit-Ganzzahlen. Die vier Arrays stellen ein Array von Bereichen rationaler Zahlen dar. Ein rationaler Bereich ist die Menge aller Bruchzahlen von einem kleinsten Bruchwert bis zu einem größten Bruchwert. Legt die ValueType-Eigenschaft auf ValueTypeRationalRange und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im numerator1-Array fest, die gleich der Anzahl der Elemente in den anderen drei Arrays sein muss.

EncoderParameter(Encoder, Int64)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einer 64-Bit-Ganzzahl. Legt die ValueType-Eigenschaft auf ValueTypeLong (32 Bits) und die NumberOfValues-Eigenschaft auf 1 fest.

EncoderParameter(Encoder, Int64, Int64)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem Paar von ganzen Zahlen mit einer Länge von 64 Bit. Die beiden ganzen Zahlen stellen einen Bereich von ganzen Zahlen dar. Dabei stellt die erste ganze Zahl die kleinste Zahl in dem Bereich dar und die zweite ganze Zahl die größte. Legt die ValueType-Eigenschaft auf ValueTypeLongRange und die NumberOfValues-Eigenschaft auf 1 fest.

EncoderParameter(Encoder, Int64[])

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einem Array von ganzen Zahlen mit einer Länge von 64 Bit. Legt die ValueType-Eigenschaft auf ValueTypeLong (32-Bit) und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im Array fest.

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

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und zwei Arrays von ganzen Zahlen mit einer Länge von 64 Bit. Die beiden Arrays stellen ein Array von Ganzzahlbereichen dar. Legt die ValueType-Eigenschaft auf ValueTypeLongRange und die NumberOfValues-Eigenschaft auf die Anzahl der Elemente im rangebegin-Array fest, die gleich der Anzahl der Elemente im rangeend-Array sein muss.

EncoderParameter(Encoder, String)

Initialisiert eine neue Instanz der EncoderParameter-Klasse mit dem angegebenen Encoder-Objekt und einer Zeichenfolge. Dieser Parameter wird in eine mit NULL endende ASCII-Zeichenfolge konvertiert, bevor er im EncoderParameter-Objekt gespeichert wird. Legt die ValueType-Eigenschaft auf ValueTypeAscii und die NumberOfValues-Eigenschaft auf die Länge der ASCII-Zeichenfolge einschließlich des NULL-Terminators fest.

Eigenschaften

Encoder

Ruft das Encoder-Objekt ab, das diesem EncoderParameter-Objekt zugeordnet ist, oder legt dieses fest. Das Encoder-Objekt kapselt den global eindeutigen Bezeichner (Globally Unique Identifier, GUID), der die Kategorie (z. B. Quality, ColorDepth oder Compression) für den in diesem EncoderParameter-Objekt gespeicherten Parameter angibt.

NumberOfValues

Ruft die Anzahl der Elemente in dem Array ab, das in diesem EncoderParameter-Objekt gespeichert ist.

Type

Ruft den Datentyp der in diesem EncoderParameter-Objekt gespeicherten Werte ab.

ValueType

Ruft den Datentyp der in diesem EncoderParameter-Objekt gespeicherten Werte ab.

Methoden

Dispose()

Gibt alle von diesem EncoderParameter-Objekt verwendeten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Ermöglicht einem EncoderParameter-Objekt den Versuch, Ressourcen freizugeben und andere Bereinigungsvorgänge durchzuführen, bevor das EncoderParameter-Objekt durch die Garbage Collection wieder zugänglich gemacht wird.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen