Поделиться через


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 Form и вызовите VaryQualityLevel метод из конструктора формы. В этом примере требуется файл образа с именем TestPhoto.jpg , расположенный по адресу 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

Комментарии

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

Примечание

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

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

EncoderParameter(Encoder, Byte)

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

EncoderParameter(Encoder, Byte, Boolean)

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

EncoderParameter(Encoder, Byte[])

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

EncoderParameter(Encoder, Byte[], Boolean)

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

EncoderParameter(Encoder, Int16)

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

EncoderParameter(Encoder, Int16[])

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

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

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

EncoderParameter(Encoder, Int32, Int32)

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

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

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

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

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

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

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

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

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

EncoderParameter(Encoder, Int64)

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

EncoderParameter(Encoder, Int64, Int64)

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

EncoderParameter(Encoder, Int64[])

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

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

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

EncoderParameter(Encoder, String)

Инициализирует новый экземпляр класса EncoderParameter с указанным объектом Encoder и строкой символов. Строка преобразуется в строку ASCII-символов с завершающим нулем перед сохранением в объект EncoderParameter. Устанавливает для свойства ValueType значение ValueTypeAscii, а для свойства NumberOfValues — длину строки 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)

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

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