ImageCodecInfo.GetImageEncoders Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een matrix met ImageCodecInfo objecten die informatie bevatten over de afbeeldingscoderingsprogramma's die zijn ingebouwd in GDI+.
public:
static cli::array <System::Drawing::Imaging::ImageCodecInfo ^> ^ GetImageEncoders();
public static System.Drawing.Imaging.ImageCodecInfo[] GetImageEncoders();
static member GetImageEncoders : unit -> System.Drawing.Imaging.ImageCodecInfo[]
Public Shared Function GetImageEncoders () As ImageCodecInfo()
Retouren
Een matrix met ImageCodecInfo objecten. Elk ImageCodecInfo object in de matrix bevat informatie over een van de ingebouwde afbeeldingscoderingsprogramma's.
Voorbeelden
Het volgende voorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een parameter van de Paint gebeurtenis-handler. De code gebruikt de GetImageEncoders methode om alle codec-informatie op te halen voor alle geïnstalleerde installatiekopieëncoderingsprogramma's en codecs, waarna alle informatie over elke codec op het scherm wordt opgehaald.
private:
void GetImageEncodersExample(PaintEventArgs^ e)
{
// Get an array of available codecs.
array<ImageCodecInfo^>^ codecInfo;
codecInfo = ImageCodecInfo::GetImageEncoders();
int numCodecs = codecInfo->GetLength(0);
//numCodecs = 1;
// Set up display variables.
Color^ foreColor = Color::Black;
Drawing::Font^ font = gcnew Drawing::Font("Arial", 8);
// 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.
array<String^>^ codecInfoStrings =
gcnew array<String^>(numCodecs * 10);
// Write all the codec information to the array.
for (int i = 0; i < numCodecs; i++)
{
codecInfoStrings[i * 10] = "Codec Name = " +
codecInfo[i]->CodecName;
codecInfoStrings[(i * 10) + 1] = "Class ID = " +
codecInfo[i]->Clsid.ToString();
codecInfoStrings[(i * 10) + 2] = "DLL Name = " +
codecInfo[i]->DllName;
codecInfoStrings[(i * 10) + 3] = "Filename Ext. = " +
codecInfo[i]->FilenameExtension;
codecInfoStrings[(i * 10) + 4] = "Flags = " +
codecInfo[i]->Flags.ToString();
codecInfoStrings[(i * 10) + 5] = "Format Descrip. = " +
codecInfo[i]->FormatDescription;
codecInfoStrings[(i * 10) + 6] = "Format ID = " +
codecInfo[i]->FormatID.ToString();
codecInfoStrings[(i * 10) + 7] = "MimeType = " +
codecInfo[i]->MimeType;
codecInfoStrings[(i * 10) + 8] = "Version = " +
codecInfo[i]->Version.ToString();
codecInfoStrings[(i * 10) + 9] = " ";
}
int numCodecInfo = codecInfoStrings->GetLength(0);
// Render all of the information to the screen.
int j = 20;
for (int i = 0; i < numCodecInfo; i++)
{
e->Graphics->DrawString(codecInfoStrings[i],
font, gcnew SolidBrush(*foreColor), 20, (float)j);
j += 12;
}
}
else
e->Graphics->DrawString("No Codecs Found",
font, gcnew SolidBrush(*foreColor), 20, 20);
}
private void GetImageEncodersExample(PaintEventArgs e)
{
// Get an array of available codecs.
ImageCodecInfo[] myCodecs;
myCodecs = ImageCodecInfo.GetImageEncoders();
int numCodecs = myCodecs.GetLength(0);
//numCodecs = 1;
// 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);
}
Public Sub GetImageEncodersExample(ByVal e As PaintEventArgs)
' Get an array of available codecs.
Dim myEncoders() As ImageCodecInfo
myEncoders = ImageCodecInfo.GetImageEncoders()
Dim numEncoders As Integer = myEncoders.GetLength(0)
Dim strNumEncoders As String = numEncoders.ToString()
Dim foreColor As Color = Color.Black
Dim font As New Font("Arial", 8)
Dim i As Integer = 0
' Get the info. for all encoders in the array.
If numEncoders > 0 Then
Dim myEncoderInfo(numEncoders * 10) As String
For i = 0 To numEncoders - 1
myEncoderInfo((i * 10)) = "Codec Name = " _
+ myEncoders(i).CodecName
myEncoderInfo((i * 10 + 1)) = "Class ID = " _
+ myEncoders(i).Clsid.ToString()
myEncoderInfo((i * 10 + 2)) = "DLL Name = " _
+ myEncoders(i).DllName
myEncoderInfo((i * 10 + 3)) = "Filename Ext. = " _
+ myEncoders(i).FilenameExtension
myEncoderInfo((i * 10 + 4)) = "Flags = " _
+ myEncoders(i).Flags.ToString()
myEncoderInfo((i * 10 + 5)) = "Format Descrip. = " _
+ myEncoders(i).FormatDescription
myEncoderInfo((i * 10 + 6)) = "Format ID = " _
+ myEncoders(i).FormatID.ToString()
myEncoderInfo((i * 10 + 7)) = "MimeType = " _
+ myEncoders(i).MimeType
myEncoderInfo((i * 10 + 8)) = "Version = " _
+ myEncoders(i).Version.ToString()
myEncoderInfo((i * 10 + 9)) = " "
Next i
Dim numMyEncoderInfo As Integer = myEncoderInfo.GetLength(0)
' Render to the screen all the information.
Dim j As Integer = 20
For i = 0 To numMyEncoderInfo - 1
e.Graphics.DrawString(myEncoderInfo(i), font, _
New SolidBrush(foreColor), 20, j)
j += 12
Next i
Else
e.Graphics.DrawString("No Encoders Found", font, _
New SolidBrush(foreColor), 20, 20)
End If
End Sub