다음을 통해 공유


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 합니다. 이 예제에는 c:\에 있는 라는 TestPhoto.jpg 이미지 파일이 필요합니다.

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 운영 체제에서만 지원됩니다. 플랫폼 간 앱에서 이 형식을 사용하면 컴파일 시간 경고 및 런타임 예외가 발생합니다. 자세한 내용은 Windows에서만 지원되는 System.Drawing.Common을 참조하세요.

생성자

EncoderParameter(Encoder, Byte)

지정된 EncoderParameter 개체 및 부호 없는 8비트 정수 하나를 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성을 ValueTypeByte로 설정하고 NumberOfValues 속성을 1로 설정합니다.

EncoderParameter(Encoder, Byte, Boolean)

지정된 EncoderParameter 개체 및 8비트 값 하나를 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성은 ValueTypeUndefinedValueTypeByte로 설정하고, NumberOfValues 속성은 1로 설정합니다.

EncoderParameter(Encoder, Byte[])

지정된 EncoderParameter 개체 및 부호 없는 8비트 정수의 배열을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성은 ValueTypeByte로 설정하고, NumberOfValues 속성은 배열에 있는 요소의 개수로 설정합니다.

EncoderParameter(Encoder, Byte[], Boolean)

지정된 EncoderParameter 개체 및 바이트의 배열을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성은 ValueTypeUndefinedValueTypeByte로 설정하고, NumberOfValues 속성은 배열에 있는 요소의 개수로 설정합니다.

EncoderParameter(Encoder, Int16)

지정된 EncoderParameter 개체 및 16비트 정수 하나를 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성을 ValueTypeShort로 설정하고 NumberOfValues 속성을 1로 설정합니다.

EncoderParameter(Encoder, Int16[])

지정된 EncoderParameter 개체 및 16비트 정수의 배열을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성은 ValueTypeShort로 설정하고, NumberOfValues 속성은 배열에 있는 요소의 개수로 설정합니다.

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

지정된 EncoderParameter 개체, 값의 개수, 값의 데이터 형식 및 Encoder 개체에 저장된 값에 대한 포인터를 사용하여 EncoderParameter 클래스의 새 인스턴스를 초기화합니다.

EncoderParameter(Encoder, Int32, Int32)

지정된 EncoderParameter 개체 및 32비트 정수 쌍을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. 정수 쌍은 분수를 나타냅니다. 첫째 정수는 분자이고 둘째 정수는 분모입니다. ValueType 속성을 ValueTypeRational로 설정하고 NumberOfValues 속성을 1로 설정합니다.

EncoderParameter(Encoder, Int32, Int32, Int32)
사용되지 않음.
사용되지 않음.
사용되지 않음.

지정된 EncoderParameter 개체와 값의 개수, 값의 데이터 형식 및 Encoder 개체에 저장된 값에 대한 포인터를 지정하는 세 개의 정수를 사용하여 EncoderParameter 클래스의 새 인스턴스를 초기화합니다.

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

지정된 EncoderParameter 개체 및 32비트 정수 네 개를 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. 네 개의 정수는 분수의 범위를 나타냅니다. 처음 두 정수는 범위의 최소 분수값을 나타내며 나머지 두 정수는 최대 분수값을 나타냅니다. ValueType 속성을 ValueTypeRationalRange로 설정하고 NumberOfValues 속성을 1로 설정합니다.

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

지정된 EncoderParameter 개체 및 32비트 정수의 두 배열을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. 두 배열은 분수의 배열을 나타냅니다. ValueType 속성은 ValueTypeRational로 설정하고, NumberOfValues 속성은 numerator 배열에 있는 요소의 개수로 설정합니다. 이 개수는 denominator 배열에 있는 요소의 개수와 같아야 합니다.

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

지정된 EncoderParameter 개체 및 32비트 정수의 네 배열을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. 네 배열은 배열의 유리수 범위를 나타냅니다. 유리수 범위는 최소 분수값에서 최대 분수값에 이르는 모든 분수 집합입니다. ValueType 속성은 ValueTypeRationalRange로 설정하고, NumberOfValues 속성은 numerator1 배열에 있는 요소의 개수로 설정합니다. 이 개수는 다른 세 개의 배열에 있는 요소의 개수와 같아야 합니다.

EncoderParameter(Encoder, Int64)

지정된 EncoderParameter 개체 및 64비트 정수 하나를 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. ValueType 속성은 ValueTypeLong(32비트)으로 설정하고, NumberOfValues 속성은 1로 설정합니다.

EncoderParameter(Encoder, Int64, Int64)

지정된 Encoder 개체 및 64비트 정수 쌍을 사용하여 EncoderParameter 클래스의 새 인스턴스를 초기화합니다. 정수 쌍은 정수의 범위를 나타냅니다. 첫째 정수는 범위의 최소값이며 둘째 정수는 최대값입니다. ValueType 속성을 ValueTypeLongRange로 설정하고 NumberOfValues 속성을 1로 설정합니다.

EncoderParameter(Encoder, Int64[])

지정된 Encoder 개체 및 64비트 정수의 배열을 사용하여 EncoderParameter 클래스의 새 인스턴스를 초기화합니다. ValueType 속성은 ValueTypeLong(32비트)으로 설정하고, NumberOfValues 속성은 배열에 있는 요소의 개수로 설정합니다.

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

지정된 Encoder 개체 및 64비트 정수의 두 배열을 사용하여 EncoderParameter 클래스의 새 인스턴스를 초기화합니다. 두 배열은 배열의 정수 범위를 나타냅니다. ValueType 속성은 ValueTypeLongRange로 설정하고, NumberOfValues 속성은 rangebegin 배열에 있는 요소의 개수로 설정합니다. 이 개수는 rangeend 배열에 있는 요소의 개수와 같아야 합니다.

EncoderParameter(Encoder, String)

지정된 EncoderParameter 개체 및 문자열을 사용하여 Encoder 클래스의 새 인스턴스를 초기화합니다. 이 문자열은 EncoderParameter 개체에 저장되기 전에 null로 종료되는 ASCII 문자열로 변환됩니다. ValueType 속성은 ValueTypeAscii로 설정하고, NumberOfValues 속성은 NULL 종결자를 포함하는 ASCII 문자열의 길이로 설정합니다.

속성

Encoder

Encoder 개체와 관련된 EncoderParameter 개체를 가져오거나 설정합니다. Encoder 개체는 이 Quality 개체에 저장된 매개 변수의 범주(예: ColorDepth, Compression 또는 EncoderParameter)를 지정하는 GUID(Globally Unique Identifier)를 캡슐화합니다.

NumberOfValues

EncoderParameter 개체에 저장된 값의 배열에 있는 요소의 개수를 가져옵니다.

Type

EncoderParameter 개체에 저장된 값의 데이터 형식을 가져옵니다.

ValueType

EncoderParameter 개체에 저장된 값의 데이터 형식을 가져옵니다.

메서드

Dispose()

EncoderParameter 개체에서 사용하는 리소스를 모두 해제합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Finalize()

가비지 수집기에서 EncoderParameter 개체 회수하기 전에 EncoderParameter 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보