public static void Initialize()
{
if ( !FI.FreeImage.IsAvailable() )
{
LogManager.Instance.Write( "[ Warning ] No Freeimage found." );
return;
}
LogManager.Instance.Write( "FreeImage Version: {0}", FI.FreeImage.GetVersion() );
LogManager.Instance.Write( FI.FreeImage.GetCopyrightMessage() );
StringBuilder sb = new StringBuilder();
sb.Append( " Supported formats: " );
bool first = true;
for ( int i = 0; i < FI.FreeImage.GetFIFCount(); i++ )
{
if ( (FI.FREE_IMAGE_FORMAT)i == FI.FREE_IMAGE_FORMAT.FIF_DDS )
continue;
string exts = FI.FreeImage.GetFIFExtensionList( (FI.FREE_IMAGE_FORMAT)i );
if ( !first )
{
sb.Append( "," );
}
else
first = false;
sb.Append( exts );
// Pull off individual formats (separated by comma by FI)
string[] extensions = exts.Split( ',' );
foreach ( string extension in extensions )
{
// FreeImage 3.13 lists many formats twice: once under their own codec and
// once under the "RAW" codec, which is listed last. Avoid letting the RAW override
// the dedicated codec!
if ( !CodecManager.Instance.IsCodecAviable( extension ) )
{
ImageCodec codec = new FreeImageCodec( extension, (FI.FREE_IMAGE_TYPE)i );
_codecList.Add( codec );
CodecManager.Instance.RegisterCodec( codec );
}
}
}
LogManager.Instance.Write( sb.ToString() );
FI.FreeImageEngine.Message += new FI.OutputMessageFunction( FreeImageLoadErrorHandler );
}