EncoderParameter Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Usado para passar um valor, ou um array de valores, a 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 seguinte exemplo de código demonstra como criar um EncoderParameter usando o EncoderParameter construtor. Para executar este exemplo, cole o código num Windows Form e chame o método VaryQualityLevel do construtor do formulário. Este exemplo requer um ficheiro de imagem nomeado 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
Observações
Também pode usar um EncoderParameter objeto para receber uma lista de valores possíveis suportados por um determinado parâmetro de um determinado codificador de imagem.
Note
No .NET 6 e versões posteriores, o pacote System.Drawing.Common, que inclui esse tipo, só é suportado em sistemas operacionais Windows. O uso deste tipo em aplicações multiplataforma causa avisos em tempo de compilação e exceções em tempo de execução. Para obter mais informações, consulte System.Drawing.Common suportado apenas no Windows.
Construtores
| Name | 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 não assinado de 8 bits. 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 um array de bytes. Define a ValueType propriedade como ValueTypeUndefined ou ValueTypeByte, e define a NumberOfValues propriedade como o número de elementos no array. |
| EncoderParameter(Encoder, Byte[]) |
Inicializa uma nova instância da EncoderParameter classe com o objeto especificado Encoder e um array de inteiros não assinados de 8 bits. Define a ValueType propriedade como ValueTypeByte, e define a NumberOfValues propriedade como o número de elementos no array. |
| 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 um array de inteiros de 16 bits. Define a ValueType propriedade como ValueTypeShort, e define a NumberOfValues propriedade como o número de elementos no array. |
| EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr) |
Inicializa uma nova instância da EncoderParameter classe com o objeto especificado Encoder , número de valores, tipo de dado 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.
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 arrays de inteiros de 32 bits. Os quatro arrays representam os intervalos racionais de um array. Um intervalo racional é o conjunto de todas as frações desde um valor fracionário mínimo até um valor fracionário máximo. Define a ValueType propriedade para ValueTypeRationalRange, e define a NumberOfValues propriedade para o número de elementos no |
| EncoderParameter(Encoder, Int32[], Int32[]) |
Inicializa uma nova instância da EncoderParameter classe com o objeto especificado Encoder e dois arrays de inteiros de 32 bits. Os dois arrays representam um array de frações. Define a ValueType propriedade para ValueTypeRational, e define a NumberOfValues propriedade para o número de elementos no |
| 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 para ValueTypeLong (32 bits) e define a NumberOfValues propriedade para 1. |
| EncoderParameter(Encoder, Int64[], Int64[]) |
Inicializa uma nova instância da EncoderParameter classe com o objeto especificado Encoder e dois arrays de inteiros de 64 bits. Os dois arrays representam intervalos inteiros de um array. Define a ValueType propriedade para ValueTypeLongRange, e define a NumberOfValues propriedade para o número de elementos no |
| EncoderParameter(Encoder, Int64[]) |
Inicializa uma nova instância da EncoderParameter classe com o objeto especificado Encoder e um array de inteiros de 64 bits. Define a ValueType propriedade para ValueTypeLong (32 bits) e define a NumberOfValues propriedade para o número de elementos no array. |
| EncoderParameter(Encoder, String) |
Inicializa uma nova instância da EncoderParameter classe com o objeto especificado Encoder e uma cadeia de caracteres. A cadeia é convertida numa cadeia ASCII terminada por nulo antes de ser armazenada no EncoderParameter objeto. Define a ValueType propriedade para ValueTypeAscii, e define a NumberOfValues propriedade para o comprimento da cadeia ASCII incluindo o terminador NULL. |
Propriedades
| Name | Description |
|---|---|
| Encoder |
Obtém ou define o Encoder objeto associado a este EncoderParameter objeto. O Encoder objeto encapsula o identificador globalmente único (GUID) que especifica a categoria (por exemplo Quality, , ColorDepth, ou Compression) do parâmetro armazenado neste EncoderParameter objeto. |
| NumberOfValues |
Obtém o número de elementos no array de valores armazenados neste EncoderParameter objeto. |
| Type |
Obtém o tipo de dado dos valores armazenados neste EncoderParameter objeto. |
| ValueType |
Obtém o tipo de dado dos valores armazenados neste EncoderParameter objeto. |
Métodos
| Name | Description |
|---|---|
| Dispose() |
Liberta todos os recursos utilizados por este EncoderParameter objeto. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Finalize() |
Permite que um EncoderParameter objeto tente libertar recursos e realizar outras operações de limpeza antes de o EncoderParameter objeto ser recuperado pela recolha de lixo. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |