EncoderParameter Classe

Definição

Usado para passar um valor, ou uma matriz de valores, para um codificador de imagem.

public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
    interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
Herança
EncoderParameter
Implementações

Exemplos

O exemplo de código a seguir demonstra como criar um EncoderParameter usando o EncoderParameter construtor . Para executar este exemplo, cole o código em um Windows Form e chame o VaryQualityLevel método do construtor do formulário. Este exemplo requer um arquivo de imagem chamado TestPhoto.jpg localizado em 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

Comentários

Você também pode usar um EncoderParameter objeto para receber uma lista de valores possíveis com suporte por um parâmetro específico de um codificador de imagem específico.

Observação

No .NET 6 e versões posteriores, o pacote System.Drawing.Common, que inclui esse tipo, só tem suporte em sistemas operacionais Windows. O uso desse tipo em aplicativos multiplataforma causa avisos de tempo de compilação e exceções em tempo de execução. Para obter mais informações, consulte System.Drawing.Common com suporte apenas no Windows.

Construtores

EncoderParameter(Encoder, Byte)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um inteiro sem sinal de 8 bits. Define a propriedade ValueType como ValueTypeByte e a propriedade NumberOfValues como 1.

EncoderParameter(Encoder, Byte, Boolean)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um valor de 8 bits. Define a propriedade ValueType como ValueTypeUndefined ou ValueTypeByte e a propriedade NumberOfValues como 1.

EncoderParameter(Encoder, Byte[])

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma matriz de inteiros sem sinal de 8 bits. Define a propriedade ValueType como ValueTypeByte e define a propriedade NumberOfValues para o número de elementos na matriz.

EncoderParameter(Encoder, Byte[], Boolean)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma matriz de inteiros de bytes. Define a propriedade ValueType como ValueTypeUndefined ou ValueTypeByte e define a propriedade NumberOfValues para o número de elementos na matriz.

EncoderParameter(Encoder, Int16)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um inteiro de 16 bits. Define a propriedade ValueType como ValueTypeShort e a propriedade NumberOfValues como 1.

EncoderParameter(Encoder, Int16[])

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma matriz de inteiros de 16 bits. Define a propriedade ValueType como ValueTypeShort e define a propriedade NumberOfValues para o número de elementos na matriz.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado, o número de valores, o tipo de dados dos valores e um ponteiro para os valores armazenados no objeto EncoderParameter.

EncoderParameter(Encoder, Int32, Int32)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um par de inteiros de 32 bits. O par de números inteiros representa uma fração, o primeiro inteiro sendo o numerador e o segundo inteiro sendo o denominador. Define a propriedade ValueType como ValueTypeRational e a propriedade NumberOfValues como 1.

EncoderParameter(Encoder, Int32, Int32, Int32)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e três inteiros que especificam o número de valores, o tipo de dados dos valores e um ponteiro para os valores armazenados non objeto EncoderParameter.

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

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e quatro inteiros de 32 bits. Os quatro inteiros representam um intervalo de frações. Os primeiros dois inteiros representam a menor fração no intervalo e os dois inteiros restantes representam a maior fração no intervalo. Define a propriedade ValueType como ValueTypeRationalRange e a propriedade NumberOfValues como 1.

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

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e duas matrizes de inteiros de 32 bits. As duas matrizes representam uma matriz de frações. Define a propriedade ValueType como ValueTypeRational e a propriedade NumberOfValues como o número de elementos na matriz numerator, que deve ser igual ao número de elementos na matriz denominator.

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

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e quatro matrizes de inteiros de 32 bits. As quatro matrizes representam intervalos racionais de uma matriz. Um intervalo razoável é o conjunto de todas as frações de um valor fracionário mínimo até um valor fracionário máximo. Define a propriedade ValueType como ValueTypeRationalRange e a propriedade NumberOfValues como o número de elementos na matriz numerator1, que deve ser igual ao número de elementos nas outras três matrizes.

EncoderParameter(Encoder, Int64)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um inteiro de 64 bits. Define a propriedade ValueType como ValueTypeLong (32 bits) e a propriedade NumberOfValues como 1.

EncoderParameter(Encoder, Int64, Int64)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um par de inteiros de 64 bits. O par de inteiros representa um intervalo de inteiros, o primeiro inteiro sendo o menor número no intervalo e o segundo inteiro sendo o maior número no intervalo. Define a propriedade ValueType como ValueTypeLongRange e a propriedade NumberOfValues como 1.

EncoderParameter(Encoder, Int64[])

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma matriz de inteiros de 64 bits. Define a propriedade ValueType como ValueTypeLong e define a propriedade NumberOfValues (32 bits) para o número de elementos na matriz.

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

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e duas matrizes de inteiros de 64 bits. As duas matrizes representam uma matriz de intervalos de inteiros. Define a propriedade ValueType como ValueTypeLongRange e a propriedade NumberOfValues como o número de elementos na matriz rangebegin, que deve ser igual ao número de elementos na matriz rangeend.

EncoderParameter(Encoder, String)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma cadeia de caracteres. A cadeia de caracteres é convertida em uma cadeia de caracteres ASCII terminada em nulo antes de ser armazenada no objeto EncoderParameter. Define a propriedade ValueType como ValueTypeAscii e define a propriedade NumberOfValues para o comprimento da cadeia de caracteres ASCII incluindo o terminador NULL.

Propriedades

Encoder

Obtém ou define o objeto Encoder associado a este objeto EncoderParameter. O objeto Encoder encapsula o GUID (identificador global exclusivo) que especifica a categoria (por exemplo Quality, ColorDepth ou Compression) do parâmetro armazenado neste objeto EncoderParameter.

NumberOfValues

Obtém o número de elementos na matriz de valores armazenados neste objeto EncoderParameter.

Type

Obtém o tipo de dados dos valores armazenados neste objeto EncoderParameter.

ValueType

Obtém o tipo de dados dos valores armazenados neste objeto EncoderParameter.

Métodos

Dispose()

Libera todos os recursos usados por esse objeto EncoderParameter.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Permite que um objeto EncoderParameter tente liberar recursos e executar outras operações de limpeza antes que objeto EncoderParameter seja recuperado pela coleta de lixo.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também