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.
Utilizzato 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 oggetto usando 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 particolare parametro di un particolare codificatore di immagini.
Nota
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 di runtime. Per altre informazioni, vedere System.Drawing.Common supportato solo in Windows.
Costruttori
EncoderParameter(Encoder, Byte) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero senza segno a 8 bit. Imposta la proprietà ValueType su ValueTypeByte e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Byte, Boolean) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un valore a 8 bit. Imposta la proprietà ValueType su ValueTypeUndefined o su ValueTypeByte e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Byte[]) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi senza segno a 8 bit. Imposta la proprietà ValueType su ValueTypeByte e la proprietà NumberOfValues sul numero di elementi della matrice. |
EncoderParameter(Encoder, Byte[], Boolean) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di byte. Imposta la proprietà ValueType su ValueTypeUndefined o su ValueTypeByte e la proprietà NumberOfValues sul numero di elementi della matrice. |
EncoderParameter(Encoder, Int16) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero a 16 bit. Imposta la proprietà ValueType su ValueTypeShort e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Int16[]) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi a 16 bit. Imposta la proprietà ValueType su ValueTypeShort e la proprietà NumberOfValues sul numero di elementi della matrice. |
EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato, 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 classe EncoderParameter con l'oggetto Encoder specificato e una coppia di interi a 32 bit. La coppia di interi rappresenta una frazione, in cui il primo intero è il numeratore e il secondo è il denominatore. Imposta la proprietà ValueType su ValueTypeRational e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Int32, Int32, Int32) |
Obsoleti.
Obsoleti.
Obsoleti.
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato 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, Int32, Int32) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e quattro interi a 32 bit. I quattro interi rappresentano un intervallo di frazioni. I primi due interi rappresentano la frazione più piccola nell'intervallo, mentre gli altri due rappresentano la frazione più grande. Imposta la proprietà ValueType su ValueTypeRationalRange e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Int32[], Int32[]) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e due matrici di interi a 32 bit. Le due matrici rappresentano una matrice di frazioni. Imposta la proprietà ValueType su ValueTypeRational e la proprietà NumberOfValues sul numero di elementi della matrice |
EncoderParameter(Encoder, Int32[], Int32[], Int32[], Int32[]) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e quattro matrici di interi a 32 bit. Le quattro matrici rappresentano intervalli razionali di una matrice. Un intervallo razionale è l'insieme di tutte le frazioni comprese tra un valore frazionario minimo e un valore frazionario massimo. Imposta la proprietà ValueType su ValueTypeRationalRange e la proprietà NumberOfValues sul numero di elementi della matrice |
EncoderParameter(Encoder, Int64) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e un intero a 64 bit. Imposta la proprietà ValueType su ValueTypeLong (32 bit) e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Int64, Int64) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una coppia di interi a 64 bit. La coppia di interi rappresenta un intervallo di interi, in cui il primo valore corrisponde al numero più piccolo nell'intervallo e il secondo corrisponde al numero più grande. Imposta la proprietà ValueType su ValueTypeLongRange e la proprietà NumberOfValues su 1. |
EncoderParameter(Encoder, Int64[]) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una matrice di interi a 64 bit. Imposta la proprietà ValueType su ValueTypeLong (32 bit) e la proprietà NumberOfValues sul numero di elementi della matrice. |
EncoderParameter(Encoder, Int64[], Int64[]) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e due matrici di interi a 64 bit. Le due matrici rappresentano intervalli di interi di una matrice. Imposta la proprietà ValueType su ValueTypeLongRange e la proprietà NumberOfValues sul numero di elementi della matrice |
EncoderParameter(Encoder, String) |
Inizializza una nuova istanza della classe EncoderParameter con l'oggetto Encoder specificato e una stringa di caratteri. La stringa viene convertita in una stringa ASCII con terminazione null prima di essere archiviata nell'oggetto EncoderParameter. Imposta la proprietà ValueType su ValueTypeAscii e la proprietà NumberOfValues sulla lunghezza della stringa ASCII includendo il terminatore NULL. |
Proprietà
Encoder |
Ottiene o imposta l'oggetto Encoder associato all'oggetto EncoderParameter. L'oggetto Encoder incapsula il GUID che specifica la categoria, ad esempio Quality, ColorDepth o Compression, del parametro archiviato in questo oggetto EncoderParameter. |
NumberOfValues |
Ottiene il numero di elementi della matrice di valori archiviati nell'oggetto EncoderParameter. |
Type |
Ottiene il tipo di dati dei valori archiviati nell'oggetto EncoderParameter. |
ValueType |
Ottiene il tipo di dati dei valori archiviati nell'oggetto EncoderParameter. |
Metodi
Dispose() |
Rilascia tutte le risorse usate dall'oggetto EncoderParameter. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Finalize() |
Consente a un oggetto EncoderParameter di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto EncoderParameter venga recuperato dalla procedura di Garbage Collection. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |