If it takes two contractors six months to drive a project to failure, four
contractors will achieve that failure in half the time, but it will take twice
as long for the failure to be acknowledged.
Tuesday, January 31, 2012
Tuesday, January 10, 2012
Filter for all supported Image file types
Nifty little trick: for the OpenFileDialog, I want to set a filter for all Image
file types supported by the PC, including ones that haven’t been invented yet.
My code will load it into some sort of Image control for displaying. I could
manually set my filter to something like “*.jpg;*.png”, etc., but then I’d have
to update it whenever a new format was introduced, and some PCs may support
types not supported by others, due to what has been installed on the PC.
This code below solves this problem. It uses the MIME types that are configured for the PC, as defined in the Windows Registry. Nice and simple solution.
This code below solves this problem. It uses the MIME types that are configured for the PC, as defined in the Windows Registry. Nice and simple solution.
public static string GetImageFormatsFileFilter()
{
string retVal= "*" + string.Join(";*", SupportedImageFormats());
return retVal;
}
public static string[] SupportedImageFormats()
{
List retVal = new List();
RegistryKey BaseKey = Registry.ClassesRoot.OpenSubKey("MIME").OpenSubKey("Database").OpenSubKey("Content Type");
foreach (string subkey in BaseKey.GetSubKeyNames())
{
if (subkey.ToUpperInvariant().StartsWith("IMAGE/"))
{
string ext = (string)BaseKey.OpenSubKey(subkey).GetValue("Extension");
if (ext != null && !retVal.Contains(ext.ToUpperInvariant()))
{
retVal.Add(ext.ToUpperInvariant());
}
}
}
return retVal.ToArray();
}
Subscribe to:
Posts (Atom)