EncoderParameter Classe

Definição

Usado para passar um valor, ou uma matriz de valores, para um codificador de imagem.Used to pass a value, or an array of values, to an image encoder.

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.The following code example demonstrates how to create a EncoderParameter using the EncoderParameter constructor. Para executar este exemplo, Cole o código em um formulário do Windows e chame o método VaryQualityLevel no construtor do formulário.To run this example, paste the code into a Windows Form and call the VaryQualityLevel method from the form's constructor. Este exemplo requer um arquivo de imagem chamado TestPhoto.jpg localizado em c:\.This example requires an image file named TestPhoto.jpg located at 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 objeto EncoderParameter para receber uma lista de possíveis valores com suporte por um determinado parâmetro de um codificador de imagem específico.You can also use an EncoderParameter object to receive a list of possible values supported by a particular parameter of a particular image encoder.

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one unsigned 8-bit integer. Define a propriedade ValueType como ValueTypeByte e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeByte, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Byte, Boolean)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um valor de 8 bits.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one 8-bit value. Define a propriedade ValueType como ValueTypeUndefined ou ValueTypeByte e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeUndefined or ValueTypeByte, and sets the NumberOfValues property to 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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of unsigned 8-bit integers. Define a propriedade ValueType como ValueTypeByte e define a propriedade NumberOfValues para o número de elementos na matriz.Sets the ValueType property to ValueTypeByte, and sets the NumberOfValues property to the number of elements in the array.

EncoderParameter(Encoder, Byte[], Boolean)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma matriz de inteiros de bytes.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of bytes. Define a propriedade ValueType como ValueTypeUndefined ou ValueTypeByte e define a propriedade NumberOfValues para o número de elementos na matriz.Sets the ValueType property to ValueTypeUndefined or ValueTypeByte, and sets the NumberOfValues property to the number of elements in the array.

EncoderParameter(Encoder, Int16)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um inteiro de 16 bits.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one, 16-bit integer. Define a propriedade ValueType como ValueTypeShort e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeShort, and sets the NumberOfValues property to 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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of 16-bit integers. Define a propriedade ValueType como ValueTypeShort e define a propriedade NumberOfValues para o número de elementos na matriz.Sets the ValueType property to ValueTypeShort, and sets the NumberOfValues property to the number of elements in the array.

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object, number of values, data type of the values, and a pointer to the values stored in the EncoderParameter object.

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and a pair of 32-bit integers. O par de números inteiros representa uma fração, o primeiro inteiro sendo o numerador e o segundo inteiro sendo o denominador.The pair of integers represents a fraction, the first integer being the numerator, and the second integer being the denominator. Define a propriedade ValueType como ValueTypeRational e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeRational, and sets the NumberOfValues property to 1.

EncoderParameter(Encoder, Int32, Int32, Int32)

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and three integers that specify the number of values, the data type of the values, and a pointer to the values stored in the EncoderParameter object.

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and four, 32-bit integers. Os quatro inteiros representam um intervalo de frações.The four integers represent a range of fractions. Os primeiros dois inteiros representam a menor fração no intervalo e os dois inteiros restantes representam a maior fração no intervalo.The first two integers represent the smallest fraction in the range, and the remaining two integers represent the largest fraction in the range. Define a propriedade ValueType como ValueTypeRationalRange e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeRationalRange, and sets the NumberOfValues property to 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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and two arrays of 32-bit integers. As duas matrizes representam uma matriz de frações.The two arrays represent an array of fractions. 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.Sets the ValueType property to ValueTypeRational, and sets the NumberOfValues property to the number of elements in the numerator array, which must be the same as the number of elements in the denominator array.

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and four arrays of 32-bit integers. As quatro matrizes representam intervalos racionais de uma matriz.The four arrays represent an array rational ranges. 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.A rational range is the set of all fractions from a minimum fractional value through a maximum fractional value. 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.Sets the ValueType property to ValueTypeRationalRange, and sets the NumberOfValues property to the number of elements in the numerator1 array, which must be the same as the number of elements in the other three arrays.

EncoderParameter(Encoder, Int64)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e um inteiro de 64 bits.Initializes a new instance of the EncoderParameter class with the specified Encoder object and one 64-bit integer. Define a propriedade ValueType como ValueTypeLong (32 bits) e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeLong (32 bits), and sets the NumberOfValues property to 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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and a pair of 64-bit integers. 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.The pair of integers represents a range of integers, the first integer being the smallest number in the range, and the second integer being the largest number in the range. Define a propriedade ValueType como ValueTypeLongRange e a propriedade NumberOfValues como 1.Sets the ValueType property to ValueTypeLongRange, and sets the NumberOfValues property to 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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and an array of 64-bit integers. Define a propriedade ValueType como ValueTypeLong e define a propriedade NumberOfValues (32 bits) para o número de elementos na matriz.Sets the ValueType property to ValueTypeLong (32-bit), and sets the NumberOfValues property to the number of elements in the array.

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.Initializes a new instance of the EncoderParameter class with the specified Encoder object and two arrays of 64-bit integers. As duas matrizes representam uma matriz de intervalos de inteiros.The two arrays represent an array integer ranges. 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.Sets the ValueType property to ValueTypeLongRange, and sets the NumberOfValues property to the number of elements in the rangebegin array, which must be the same as the number of elements in the rangeend array.

EncoderParameter(Encoder, String)

Inicializa uma nova instância da classe EncoderParameter com o objeto Encoder especificado e uma cadeia de caracteres.Initializes a new instance of the EncoderParameter class with the specified Encoder object and a character string. A cadeia de caracteres é convertida em uma cadeia de caracteres ASCII terminada em nulo antes de ser armazenada no objeto EncoderParameter.The string is converted to a null-terminated ASCII string before it is stored in the EncoderParameter object. Define a propriedade ValueType como ValueTypeAscii e define a propriedade NumberOfValues para o comprimento da cadeia de caracteres ASCII incluindo o terminador NULL.Sets the ValueType property to ValueTypeAscii, and sets the NumberOfValues property to the length of the ASCII string including the NULL terminator.

Propriedades

Encoder

Obtém ou define o objeto Encoder associado a este objeto EncoderParameter.Gets or sets the Encoder object associated with this EncoderParameter object. 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.The Encoder object encapsulates the globally unique identifier (GUID) that specifies the category (for example Quality, ColorDepth, or Compression) of the parameter stored in this EncoderParameter object.

NumberOfValues

Obtém o número de elementos na matriz de valores armazenados neste objeto EncoderParameter.Gets the number of elements in the array of values stored in this EncoderParameter object.

Type

Obtém o tipo de dados dos valores armazenados neste objeto EncoderParameter.Gets the data type of the values stored in this EncoderParameter object.

ValueType

Obtém o tipo de dados dos valores armazenados neste objeto EncoderParameter.Gets the data type of the values stored in this EncoderParameter object.

Métodos

Dispose()

Libera todos os recursos usados por esse objeto EncoderParameter.Releases all resources used by this EncoderParameter object.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(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.Allows an EncoderParameter object to attempt to free resources and perform other cleanup operations before the EncoderParameter object is reclaimed by garbage collection.

GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Aplica-se a

Veja também