EncoderParameter Класс

Определение

Используется для передачи значения или массива значений кодировщику изображений.

public ref class EncoderParameter sealed : IDisposable
public sealed class EncoderParameter : IDisposable
type EncoderParameter = class
    interface IDisposable
Public NotInheritable Class EncoderParameter
Implements IDisposable
Наследование
EncoderParameter
Реализации

Примеры

В следующем примере кода показано, как создать EncoderParameter, используя конструктор EncoderParameter. Чтобы запустить этот пример, вставьте код в Форму Windows и вызовите VaryQualityLevel метод из конструктора формы. В этом примере требуется файл изображения с именем TestPhoto.jpgc:\.

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

Комментарии

Можно также использовать EncoderParameter объект для получения списка возможных значений, поддерживаемых определенным параметром определенного кодировщика изображений.

Note

В .NET 6 и более поздних версиях пакет System.Drawing.Common, который включает этот тип, поддерживается только в операционных системах Windows. Использование этого типа в кроссплатформенных приложениях вызывает предупреждения во время компиляции и исключения во время выполнения. Дополнительные сведения см. в статье System.Drawing.Common, поддерживаемой только в Windows.

Конструкторы

Имя Описание
EncoderParameter(Encoder, Byte, Boolean)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и одним 8-разрядным значением. ValueType Задает значение или значение свойства и задает NumberOfValues для свойства ValueTypeUndefinedValueTypeByteзначение 1.

EncoderParameter(Encoder, Byte)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и одним 8-разрядным целым числом без знака. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeByteзначение 1.

EncoderParameter(Encoder, Byte[], Boolean)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и массивом байтов. ValueType Задает значение свойства или ValueTypeByteзадает NumberOfValues для свойства ValueTypeUndefined число элементов в массиве.

EncoderParameter(Encoder, Byte[])

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и массивом незначенных 8-разрядных целых чисел. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeByteчисло элементов в массиве.

EncoderParameter(Encoder, Int16)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и одним 16-разрядным целым числом. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeShortзначение 1.

EncoderParameter(Encoder, Int16[])

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и массивом 16-разрядных целых чисел. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeShortчисло элементов в массиве.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом, числом значений, типом данных значений и указателем на значения, хранящиеся в объекте EncoderParameter .

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

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и четырьмя 32-разрядными целыми числами. Четыре целых числа представляют диапазон дробей. Первые два целых числа представляют наименьшую долю в диапазоне, а остальные два целых числа представляют большую долю в диапазоне. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeRationalRangeзначение 1.

EncoderParameter(Encoder, Int32, Int32, Int32)
Устаревшие..
Устаревшие..
Устаревшие..

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и тремя целыми числами, которые указывают количество значений, тип данных значений и указатель на значения, хранящиеся в объекте EncoderParameter .

EncoderParameter(Encoder, Int32, Int32)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и парой 32-разрядных целых чисел. Пара целых чисел представляет дробь, первое целое число является числовым и вторым целым числом, которое является знаменателем. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeRationalзначение 1.

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

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и четырьмя массивами 32-разрядных целых чисел. Четыре массива представляют собой рациональные диапазоны массива. Рациональный диапазон — это набор всех дробей от минимального дробного значения через максимальное дробное значение. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeRationalRangeчисло элементов в numerator1 массиве, которое должно совпадать с числом элементов в других трех массивах.

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

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и двумя массивами 32-разрядных целых чисел. Два массива представляют массив дробей. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeRationalчисло элементов в массиве, которое должно совпадать с числом элементов в numerator массивеdenominator.

EncoderParameter(Encoder, Int64, Int64)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и парой 64-разрядных целых чисел. Пара целых чисел представляет диапазон целых чисел, первое целое число является наименьшим числом в диапазоне, а второе целое число — самым большим числом в диапазоне. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeLongRangeзначение 1.

EncoderParameter(Encoder, Int64)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и одним 64-разрядным целым числом. ValueType Задает для свойства значение (32 бита) и задает NumberOfValues для свойства ValueTypeLong значение 1.

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

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и двумя массивами 64-разрядных целых чисел. Два массива представляют целые диапазоны массивов. ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeLongRangeчисло элементов в массиве, которое должно совпадать с числом элементов в rangebegin массивеrangeend.

EncoderParameter(Encoder, Int64[])

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и массивом 64-разрядных целых чисел. ValueType Задает для свойства значение (32-разрядная версия) и задает NumberOfValues для свойства ValueTypeLong число элементов в массиве.

EncoderParameter(Encoder, String)

Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и строкой символов. Строка преобразуется в строку ASCII, завершаемую null, прежде чем она хранится в объекте EncoderParameter . ValueType Задает значение свойства и задает NumberOfValues значение свойства ValueTypeAsciiдлине строки ASCII, включая терминатор NULL.

Свойства

Имя Описание
Encoder

Возвращает или задает объект, связанный Encoder с этим EncoderParameter объектом. Объект Encoder инкапсулирует глобальный уникальный идентификатор (GUID), указывающий категорию (например Quality, ColorDepthили Compression) параметра, хранящегося в этом EncoderParameter объекте.

NumberOfValues

Возвращает количество элементов в массиве значений, хранящихся в этом EncoderParameter объекте.

Type

Возвращает тип данных значений, хранящихся в этом EncoderParameter объекте.

ValueType

Возвращает тип данных значений, хранящихся в этом EncoderParameter объекте.

Методы

Имя Описание
Dispose()

Освобождает все ресурсы, используемые этим EncoderParameter объектом.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

EncoderParameter Позволяет объекту пытаться освободить ресурсы и выполнять другие операции очистки перед EncoderParameter восстановлением объекта сборкой мусора.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел