EncoderParameter Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Usato per passare un valore, o una matrice di valori, a un codificatore di immagini.
public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
- Ereditarietà
-
EncoderParameter
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come creare un EncoderParameter con il EncoderParameter costruttore. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare il VaryQualityLevel metodo dal costruttore del modulo. Questo esempio richiede un file di immagine denominato TestPhoto.jpg in 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
Commenti
È anche possibile usare un EncoderParameter oggetto per ricevere un elenco di valori possibili supportati da un determinato parametro di un particolare codificatore di immagini.
Note
In .NET 6 e versioni successive il pacchetto System.Drawing.Common, che include questo tipo, è supportato solo nei sistemi operativi Windows. L'uso di questo tipo nelle app multipiattaforma causa avvisi in fase di compilazione ed eccezioni in fase di esecuzione. Per altre informazioni, vedere System.Drawing.Common supportato solo in Windows.
Costruttori
| Nome | Descrizione |
|---|---|
| EncoderParameter(Encoder, Byte, Boolean) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e un valore a 8 bit. Imposta la ValueType proprietà su ValueTypeUndefined o ValueTypeBytee imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Byte) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e un intero senza segno a 8 bit. Imposta la ValueType proprietà su ValueTypeBytee imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Byte[], Boolean) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una matrice di byte. Imposta la ValueType proprietà su ValueTypeUndefined o ValueTypeBytee imposta la NumberOfValues proprietà sul numero di elementi nella matrice. |
| EncoderParameter(Encoder, Byte[]) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una matrice di interi senza segno a 8 bit. Imposta la ValueType proprietà su ValueTypeBytee imposta la NumberOfValues proprietà sul numero di elementi nella matrice. |
| EncoderParameter(Encoder, Int16) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e un intero a 16 bit. Imposta la ValueType proprietà su ValueTypeShorte imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Int16[]) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una matrice di interi a 16 bit. Imposta la ValueType proprietà su ValueTypeShorte imposta la NumberOfValues proprietà sul numero di elementi nella matrice. |
| EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder , il numero di valori, il tipo di dati dei valori e un puntatore ai valori archiviati nell'oggetto EncoderParameter . |
| EncoderParameter(Encoder, Int32, Int32, Int32, Int32) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e quattro interi a 32 bit. I quattro interi rappresentano un intervallo di frazioni. I primi due numeri interi rappresentano la frazione più piccola nell'intervallo e i due interi rimanenti rappresentano la frazione più grande nell'intervallo. Imposta la ValueType proprietà su ValueTypeRationalRangee imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Int32, Int32, Int32) |
Obsoleti.
Obsoleti.
Obsoleti.
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e tre interi che specificano il numero di valori, il tipo di dati dei valori e un puntatore ai valori archiviati nell'oggetto EncoderParameter . |
| EncoderParameter(Encoder, Int32, Int32) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una coppia di interi a 32 bit. La coppia di numeri interi rappresenta una frazione, il primo intero è il numeratore e il secondo intero è il denominatore. Imposta la ValueType proprietà su ValueTypeRationale imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Int32[], Int32[], Int32[], Int32[]) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e quattro matrici di interi a 32 bit. Le quattro matrici rappresentano intervalli razionali di matrice. Un intervallo razionale è il set di tutte le frazioni da un valore frazionaria minimo attraverso un valore frazionaria massimo. Imposta la ValueType proprietà su ValueTypeRationalRangee imposta la NumberOfValues proprietà sul numero di elementi nella |
| EncoderParameter(Encoder, Int32[], Int32[]) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e due matrici di interi a 32 bit. Le due matrici rappresentano una matrice di frazioni. Imposta la ValueType proprietà su ValueTypeRationale imposta la NumberOfValues proprietà sul numero di elementi nella |
| EncoderParameter(Encoder, Int64, Int64) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una coppia di interi a 64 bit. La coppia di numeri interi rappresenta un intervallo di interi, il primo intero è il numero più piccolo nell'intervallo e il secondo intero è il numero più grande nell'intervallo. Imposta la ValueType proprietà su ValueTypeLongRangee imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Int64) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e un intero a 64 bit. Imposta la ValueType proprietà su ValueTypeLong (32 bit) e imposta la NumberOfValues proprietà su 1. |
| EncoderParameter(Encoder, Int64[], Int64[]) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e due matrici di interi a 64 bit. Le due matrici rappresentano intervalli di numeri interi di matrice. Imposta la ValueType proprietà su ValueTypeLongRangee imposta la NumberOfValues proprietà sul numero di elementi nella |
| EncoderParameter(Encoder, Int64[]) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una matrice di interi a 64 bit. Imposta la ValueType proprietà su ValueTypeLong (32 bit) e imposta la NumberOfValues proprietà sul numero di elementi nella matrice. |
| EncoderParameter(Encoder, String) |
Inizializza una nuova istanza della EncoderParameter classe con l'oggetto specificato Encoder e una stringa di caratteri. La stringa viene convertita in una stringa ASCII con terminazione Null prima che venga archiviata nell'oggetto EncoderParameter . Imposta la ValueType proprietà su ValueTypeAsciie imposta la NumberOfValues proprietà sulla lunghezza della stringa ASCII, incluso il carattere di terminazione NULL. |
Proprietà
| Nome | Descrizione |
|---|---|
| Encoder |
Ottiene o imposta l'oggetto Encoder associato a questo EncoderParameter oggetto. L'oggetto Encoder incapsula l'identificatore univoco globale (GUID) che specifica la categoria (ad esempio Quality, ColorDeptho Compression) del parametro archiviato in questo EncoderParameter oggetto. |
| NumberOfValues |
Ottiene il numero di elementi nella matrice di valori archiviati in questo EncoderParameter oggetto. |
| Type |
Ottiene il tipo di dati dei valori archiviati in questo EncoderParameter oggetto. |
| ValueType |
Ottiene il tipo di dati dei valori archiviati in questo EncoderParameter oggetto. |
Metodi
| Nome | Descrizione |
|---|---|
| Dispose() |
Rilascia tutte le risorse usate da questo EncoderParameter oggetto. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Finalize() |
Consente a un EncoderParameter oggetto di tentare di liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto EncoderParameter venga recuperato da Garbage Collection. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |