Compartir a través de


EncoderParameter Clase

Definición

Se utiliza para pasar un valor o una matriz de valores a un codificador de imágenes.

public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
    interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
Herencia
EncoderParameter
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear un EncoderParameter mediante el EncoderParameter constructor . Para ejecutar este ejemplo, pegue el código en un formulario Windows Forms y llame al VaryQualityLevel método desde el constructor del formulario. En este ejemplo se requiere un archivo de imagen denominado TestPhoto.jpg ubicado en 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

Comentarios

También puede usar un EncoderParameter objeto para recibir una lista de valores posibles admitidos por un parámetro determinado de un codificador de imagen determinado.

Nota

En .NET 6 y versiones posteriores, el paquete System.Drawing.Common, que incluye este tipo, solo se admite en sistemas operativos Windows. El uso de este tipo en aplicaciones multiplataforma provoca advertencias en tiempo de compilación y excepciones en tiempo de ejecución. Para obtener más información, consulte System.Drawing.Common only supported on Windows(System.Drawing.Common only supported on Windows).

Constructores

EncoderParameter(Encoder, Byte)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y un entero de 8 bits sin signo. Establece la propiedad ValueType en ValueTypeByte y la propiedad NumberOfValues en 1.

EncoderParameter(Encoder, Byte, Boolean)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y un valor de 8 bits. Establece el valor de la propiedad ValueType en ValueTypeUndefined o ValueTypeByte, y establece el valor de la propiedad NumberOfValues en 1.

EncoderParameter(Encoder, Byte[])

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y una matriz de enteros de 8 bits sin signo. Establece el valor de la propiedad ValueType en ValueTypeByte, y establece el valor de la propiedad NumberOfValues en el número de elementos de la matriz.

EncoderParameter(Encoder, Byte[], Boolean)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y una matriz de bytes. Establece el valor de la propiedad ValueType en ValueTypeUndefined o ValueTypeByte, y establece el valor de la propiedad NumberOfValues en el número de elementos de la matriz.

EncoderParameter(Encoder, Int16)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y un entero de 16 bits. Establece la propiedad ValueType en ValueTypeShort y la propiedad NumberOfValues en 1.

EncoderParameter(Encoder, Int16[])

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y una matriz de enteros de 16 bits. Establece el valor de la propiedad ValueType en ValueTypeShort, y establece el valor de la propiedad NumberOfValues en el número de elementos de la matriz.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder, número de valores, tipo de datos de los valores y un puntero a los valores almacenados en el objeto EncoderParameter.

EncoderParameter(Encoder, Int32, Int32)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y un par de enteros de 32 bits. El par de enteros representa una fracción, donde el primer entero es el numerador y el segundo el denominador. Establece la propiedad ValueType en ValueTypeRational y la propiedad NumberOfValues en 1.

EncoderParameter(Encoder, Int32, Int32, Int32)
Obsoletos.
Obsoletos.
Obsoletos.

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y tres enteros que especifican el número de valores, el tipo de datos de los mismos, y un puntero a los valores almacenados en el objeto EncoderParameter.

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

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y cuatro enteros de 32 bits. Los cuatro enteros representan un intervalo de fracciones. Los dos primeros enteros representan la fracción menor del intervalo, y los dos enteros restantes, la fracción mayor. Establece la propiedad ValueType en ValueTypeRationalRange y la propiedad NumberOfValues en 1.

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

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y dos matrices de enteros de 32 bits. Las dos matrices representan una matriz de fracciones. Establece la propiedad ValueType en ValueTypeRational, y la propiedad NumberOfValues en el número de elementos de la matriz numerator, que debe ser igual que el número de elementos de la matriz denominator.

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

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y cuatro matrices de enteros de 32 bits. Las cuatro matrices representan una matriz de intervalos de racionales. Un intervalo de racionales es el conjunto de todas las fracciones entre un valor fraccionario mínimo y uno máximo. Establece el valor de la propiedad ValueType en ValueTypeRationalRange, y el valor de la propiedad NumberOfValues en el número de elementos de la matriz numerator1, que debe ser igual que el número de elementos de las otras tres matrices.

EncoderParameter(Encoder, Int64)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y un entero de 64 bits. Establece la propiedad ValueType en ValueTypeLong (32 bits), y la propiedad NumberOfValues en 1.

EncoderParameter(Encoder, Int64, Int64)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y un par de enteros de 64 bits. El par de enteros representa un intervalo de enteros; el primero es el menor número del intervalo, y el segundo, el mayor. Establece la propiedad ValueType en ValueTypeLongRange y la propiedad NumberOfValues en 1.

EncoderParameter(Encoder, Int64[])

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y una matriz de enteros de 64 bits. Establece el valor de la propiedad ValueType en ValueTypeLong (32 bits), y establece el valor de la propiedad NumberOfValues en el número de elementos de la matriz.

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

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y dos matrices de enteros de 64 bits. Las dos matrices representan una matriz de intervalos de enteros. Establece la propiedad ValueType en ValueTypeLongRange, y la propiedad NumberOfValues en el número de elementos de la matriz rangebegin, que debe ser igual que el número de elementos de la matriz rangeend.

EncoderParameter(Encoder, String)

Inicializa una nueva instancia de la clase EncoderParameter con el objeto Encoder especificado y una cadena de caracteres. La cadena se convierte en una cadena ASCII terminada en null antes de almacenarla en el objeto EncoderParameter. Establece la propiedad ValueType en ValueTypeAscii, y establece la propiedad NumberOfValues en la longitud de la cadena ASCII, incluido el terminador NULL.

Propiedades

Encoder

Obtiene o establece el objeto Encoder asociado con este objeto EncoderParameter. El objeto Encoder encapsula el identificador único global (GUID) que especifica la categoría (por ejemplo, Quality, ColorDepth o Compression) del parámetro almacenado en este objeto EncoderParameter.

NumberOfValues

Obtiene el número de elementos de la matriz de valores almacenada en este objeto EncoderParameter.

Type

Obtiene el tipo de datos de los valores almacenados en este objeto EncoderParameter.

ValueType

Obtiene el tipo de datos de los valores almacenados en este objeto EncoderParameter.

Métodos

Dispose()

Libera todos los recursos utilizados por este objeto EncoderParameter.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Finalize()

Permite que un objeto EncoderParameter intente liberar recursos y realizar otras operaciones de limpieza antes de que la recolección de elementos no utilizados reclame el objeto EncoderParameter.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también