Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

How to: Determine the Parameters Supported by an Encoder

You can adjust image parameters, such as quality and compression level, but you must know which parameters are supported by a given image encoder. The Image class provides the GetEncoderParameterList method so that you can determine which image parameters are supported for a particular encoder. You specify the encoder with a GUID. The GetEncoderParameterList method returns an array of EncoderParameter objects.

The following example code outputs the supported parameters for the JPEG encoder. Use the list of parameter categories and associated GUIDs in the Encoder class overview to determine the category for each parameter.

private void GetSupportedParameters(PaintEventArgs e)
    Bitmap bitmap1 = new Bitmap(1, 1);
    ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
    EncoderParameters paramList = bitmap1.GetEncoderParameterList(jpgEncoder.Clsid);
    EncoderParameter[] encParams = paramList.Param;
    StringBuilder paramInfo = new StringBuilder();

    for (int i = 0; i < encParams.Length; i++)
        paramInfo.Append("Param " + i + " holds " + encParams[i].NumberOfValues +
            " items of type " +
            encParams[i].ValueType + "\r\n" + "Guid category: " + encParams[i].Encoder.Guid + "\r\n");

    e.Graphics.DrawString(paramInfo.ToString(), this.Font, Brushes.Red, 10.0F, 10.0F);

private ImageCodecInfo GetEncoder(ImageFormat format)

    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

    foreach (ImageCodecInfo codec in codecs)
        if (codec.FormatID == format.Guid)
            return codec;
    return null;

This example requires:

© 2015 Microsoft