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 メソッドを呼び出します。 この例では、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 オブジェクトを使用して、特定のイメージ エンコーダーの特定のパラメーターでサポートされている使用可能な値の一覧を受け取ることもできます。

Note

.NET 6 以降のバージョンでは、この種類を含む System.Drawing.Common パッケージは、Windows オペレーティング システムでのみサポートされています。 クロスプラットフォーム アプリでこの種類を使用すると、コンパイル時の警告と実行時の例外が発生します。 詳細については、「System.Drawing.Common が Windows でしかサポートされない」を参照してください。

コンストラクター

名前 説明
EncoderParameter(Encoder, Byte, Boolean)

指定したEncoder オブジェクトと 1 つの 8 ビット値を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティをValueTypeUndefinedまたはValueTypeByteに設定し、NumberOfValues プロパティを 1 に設定します。

EncoderParameter(Encoder, Byte)

指定したEncoder オブジェクトと 1 つの符号なし 8 ビット整数を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティをValueTypeByteに設定し、NumberOfValues プロパティを 1 に設定します。

EncoderParameter(Encoder, Byte[], Boolean)

指定したEncoder オブジェクトとバイト配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティをValueTypeUndefinedまたはValueTypeByteに設定し、NumberOfValues プロパティを配列内の要素数に設定します。

EncoderParameter(Encoder, Byte[])

指定したEncoder オブジェクトと符号なし 8 ビット整数の配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティをValueTypeByteに設定し、NumberOfValues プロパティを配列内の要素数に設定します。

EncoderParameter(Encoder, Int16)

指定したEncoder オブジェクトと 1 つの 16 ビット整数を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティをValueTypeShortに設定し、NumberOfValues プロパティを 1 に設定します。

EncoderParameter(Encoder, Int16[])

指定したEncoder オブジェクトと 16 ビット整数の配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティをValueTypeShortに設定し、NumberOfValues プロパティを配列内の要素数に設定します。

EncoderParameter(Encoder, Int32, EncoderParameterValueType, IntPtr)

指定したEncoder オブジェクト、値の数、値のデータ型、およびEncoderParameter オブジェクトに格納されている値へのポインターを使用して、EncoderParameter クラスの新しいインスタンスを初期化します。

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

指定したEncoder オブジェクトと 4 つの 32 ビット整数を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 4 つの整数は、分数の範囲を表します。 最初の 2 つの整数は範囲内の最小の分数を表し、残りの 2 つの整数は範囲内の最大の分数を表します。 ValueType プロパティをValueTypeRationalRangeに設定し、NumberOfValues プロパティを 1 に設定します。

EncoderParameter(Encoder, Int32, Int32, Int32)
古い.
古い.
古い.

指定したEncoder オブジェクトと、値の数、値のデータ型、およびEncoderParameter オブジェクトに格納されている値へのポインターを指定する 3 つの整数を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。

EncoderParameter(Encoder, Int32, Int32)

指定したEncoder オブジェクトと 32 ビット整数のペアを使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 整数のペアは分数、最初の整数は分子、2 番目の整数は分母を表します。 ValueType プロパティをValueTypeRationalに設定し、NumberOfValues プロパティを 1 に設定します。

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

指定したEncoder オブジェクトと 32 ビット整数の 4 つの配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 4 つの配列は、配列の有理範囲を表します。 有理範囲は、最小小数部から最大小数部までのすべての分数のセットです。 ValueType プロパティをValueTypeRationalRangeに設定し、NumberOfValues プロパティを numerator1 配列内の要素の数に設定します。これは、他の 3 つの配列内の要素数と同じである必要があります。

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

指定したEncoder オブジェクトと 32 ビット整数の 2 つの配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 2 つの配列は、分数の配列を表します。 ValueType プロパティをValueTypeRationalに設定し、NumberOfValues プロパティを numerator 配列内の要素の数に設定します。これは、denominator配列内の要素数と同じである必要があります。

EncoderParameter(Encoder, Int64, Int64)

指定したEncoder オブジェクトと 64 ビット整数のペアを使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 整数のペアは整数の範囲、最初の整数は範囲内の最小の数値、2 番目の整数は範囲内の最大の数値を表します。 ValueType プロパティをValueTypeLongRangeに設定し、NumberOfValues プロパティを 1 に設定します。

EncoderParameter(Encoder, Int64)

指定したEncoder オブジェクトと 1 つの 64 ビット整数を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティを ValueTypeLong (32 ビット) に設定し、NumberOfValues プロパティを 1 に設定します。

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

指定したEncoder オブジェクトと 64 ビット整数の 2 つの配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 2 つの配列は、配列の整数範囲を表します。 ValueType プロパティをValueTypeLongRangeに設定し、NumberOfValues プロパティを rangebegin 配列内の要素の数に設定します。これは、rangeend配列内の要素数と同じである必要があります。

EncoderParameter(Encoder, Int64[])

指定したEncoder オブジェクトと 64 ビット整数の配列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 ValueType プロパティを ValueTypeLong (32 ビット) に設定し、NumberOfValues プロパティを配列内の要素数に設定します。

EncoderParameter(Encoder, String)

指定したEncoder オブジェクトと文字列を使用して、EncoderParameter クラスの新しいインスタンスを初期化します。 文字列は、 EncoderParameter オブジェクトに格納される前に、null で終わる ASCII 文字列に変換されます。 ValueType プロパティをValueTypeAsciiに設定し、NumberOfValues プロパティに NULL 終端記号を含む ASCII 文字列の長さを設定します。

プロパティ

名前 説明
Encoder

このEncoderParameter オブジェクトに関連付けられているEncoder オブジェクトを取得または設定します。 Encoder オブジェクトは、このEncoderParameter オブジェクトに格納されているパラメーターのカテゴリ (QualityColorDepthCompressionなど) を指定するグローバル一意識別子 (GUID) をカプセル化します。

NumberOfValues

この EncoderParameter オブジェクトに格納されている値の配列内の要素の数を取得します。

Type

この EncoderParameter オブジェクトに格納されている値のデータ型を取得します。

ValueType

この EncoderParameter オブジェクトに格納されている値のデータ型を取得します。

メソッド

名前 説明
Dispose()

この EncoderParameter オブジェクトで使用されているすべてのリソースを解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

EncoderParameter オブジェクトがガベージ コレクションによって再利用される前に、EncoderParameter オブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください