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число элементов в |
| EncoderParameter(Encoder, Int32[], Int32[]) |
Инициализирует новый экземпляр EncoderParameter класса с указанным Encoder объектом и двумя массивами 32-разрядных целых чисел. Два массива представляют массив дробей.
ValueType Задает значение свойства и задает NumberOfValues для свойства ValueTypeRationalчисло элементов в массиве, которое должно совпадать с числом элементов в |
| 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число элементов в массиве, которое должно совпадать с числом элементов в |
| 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) |