How to: List Installed Decoders

.NET Framework (current version)
 

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

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

    Private Sub GetImageDecodersExample(ByVal e As PaintEventArgs)
        ' Get an array of available decoders.
        Dim myCodecs() As ImageCodecInfo
        myCodecs = ImageCodecInfo.GetImageDecoders()
        Dim numCodecs As Integer = myCodecs.GetLength(0)

        ' Set up display variables.
        Dim foreColor As Color = Color.Black
        Dim font As New Font("Arial", 8)
        Dim i As Integer = 0

        ' Check to determine whether any codecs were found.
        If numCodecs > 0 Then
            ' 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.
            Dim myCodecInfo(numCodecs * 10) As String

            ' Write all the codec information to the array.
            For i = 0 To numCodecs - 1
                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)) = " "
            Next i
            Dim numMyCodecInfo As Integer = myCodecInfo.GetLength(0)

            ' Render all of the information to the screen.
            Dim j As Integer = 20
            For i = 0 To numMyCodecInfo - 1
                e.Graphics.DrawString(myCodecInfo(i), _
                    font, New SolidBrush(foreColor), 20, j)
                j += 12
            Next i
        Else
            e.Graphics.DrawString("No Codecs Found", _
                font, New SolidBrush(foreColor), 20, 20)
        End If
    End Sub

This example requires:

How to: List Installed Encoders
Using Image Encoders and Decoders in Managed GDI+

Show: