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 construtor EncoderParameter. Para executar este exemplo, cole o código em um Formulário do Windows 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 possíveis valores compatíveis com um parâmetro específico de um codificador de imagem específico.

Note

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

Nome Description
EncoderParameter(Encoder, Byte, Boolean)

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

EncoderParameter(Encoder, Byte)

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

EncoderParameter(Encoder, Byte[], Boolean)

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

EncoderParameter(Encoder, Byte[])

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

EncoderParameter(Encoder, Int16)

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

EncoderParameter(Encoder, Int16[])

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

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

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

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

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

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

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

EncoderParameter(Encoder, Int32, Int32)

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

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

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

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

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

EncoderParameter(Encoder, Int64, Int64)

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

EncoderParameter(Encoder, Int64)

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

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

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

EncoderParameter(Encoder, Int64[])

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

EncoderParameter(Encoder, String)

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

Propriedades

Nome Description
Encoder

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

NumberOfValues

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

Type

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

ValueType

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

Métodos

Nome Description
Dispose()

Libera todos os recursos usados por este objeto EncoderParameter.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Permite que um EncoderParameter objeto tente liberar recursos e executar outras operações de limpeza antes que o EncoderParameter objeto 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 Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também