How to: List Installed Encoders

You may want to list the image encoders available on a computer, to determine whether your application can save to a particular image file format. The ImageCodecInfo class provides the GetImageEncoders static methods so that you can determine which image encoders are available. GetImageEncoders returns an array of ImageCodecInfo objects.

The following code example outputs the list of installed encoders and their property values.

        private void GetImageEncodersExample(PaintEventArgs e)
        {
            // Get an array of available encoders.
            ImageCodecInfo[] myCodecs;
            myCodecs = ImageCodecInfo.GetImageEncoders();
            int numCodecs = myCodecs.GetLength(0);

            // Set up display variables.
            Color foreColor = Color.Black;
            Font font = new Font("Arial", 8);
            int i = 0;

            // Check to determine whether any codecs were found. 
            if (numCodecs > 0)
            {
                // Set up an array to hold codec information. There are 9 
                // information elements plus 1 space for each codec, so 10 times 
                // the number of codecs found is allocated. 
                string[] myCodecInfo = new string[numCodecs * 10];

                // Write all the codec information to the array. 
                for (i = 0; i < numCodecs; i++)
                {
                    myCodecInfo[i * 10] = "Codec Name = " + myCodecs[i].CodecName;
                    myCodecInfo[(i * 10) + 1] = "Class ID = " +
                        myCodecs[i].Clsid.ToString();
                    myCodecInfo[(i * 10) + 2] = "DLL Name = " + myCodecs[i].DllName;
                    myCodecInfo[(i * 10) + 3] = "Filename Ext. = " +
                        myCodecs[i].FilenameExtension;
                    myCodecInfo[(i * 10) + 4] = "Flags = " +
                        myCodecs[i].Flags.ToString();
                    myCodecInfo[(i * 10) + 5] = "Format Descrip. = " +
                        myCodecs[i].FormatDescription;
                    myCodecInfo[(i * 10) + 6] = "Format ID = " +
                        myCodecs[i].FormatID.ToString();
                    myCodecInfo[(i * 10) + 7] = "MimeType = " + myCodecs[i].MimeType;
                    myCodecInfo[(i * 10) + 8] = "Version = " +
                        myCodecs[i].Version.ToString();
                    myCodecInfo[(i * 10) + 9] = " ";
                }
                int numMyCodecInfo = myCodecInfo.GetLength(0);

                // Render all of the information to the screen. 
                int j = 20;
                for (i = 0; i < numMyCodecInfo; i++)
                {
                    e.Graphics.DrawString(myCodecInfo[i],
                        font,
                        new SolidBrush(foreColor),
                        20,
                        j);
                    j += 12;
                }
            }
            else
                e.Graphics.DrawString("No Codecs Found",
                    font,
                    new SolidBrush(foreColor),
                    20,
                    20);
        }

This example requires:

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft