Obtenez ImageFormat de l'extension du fichier

voix
22

Y at-il moyen rapide d'obtenir l'objet ImageFormat associé à une extension de fichier particulier? Je cherche plus vite que les comparaisons de chaînes pour chaque format.

Créé 26/08/2009 à 22:58
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
30

Voici quelques vieux code que je trouve que devrait faire l'affaire:

 string InputSource = "mypic.png";
 System.Drawing.Image imgInput = System.Drawing.Image.FromFile(InputSource);
 Graphics gInput = Graphics.fromimage(imgInput);
 Imaging.ImageFormat thisFormat = imgInput.RawFormat;

Cela nécessite l'ouverture et fait tester l'image - l'extension de fichier est ignoré. En supposant que vous ouvrez le fichier de toute façon, ce qui est beaucoup plus robuste que de faire confiance une extension de fichier.

Si vous n'êtes pas ouvrir les fichiers, il n'y a rien « plus rapide » (dans un sens de la performance) qu'une comparaison de chaînes - certainement pas appeler dans le système d'exploitation pour obtenir les correspondances d'extension de fichier.

Créé 26/08/2009 à 23:04
source utilisateur

voix
26
private static ImageFormat GetImageFormat(string fileName)
{
    string extension = Path.GetExtension(fileName);
    if (string.IsNullOrEmpty(extension))
        throw new ArgumentException(
            string.Format("Unable to determine file extension for fileName: {0}", fileName));

    switch (extension.ToLower())
    {
        case @".bmp":
            return ImageFormat.Bmp;

        case @".gif":
            return ImageFormat.Gif;

        case @".ico":
            return ImageFormat.Icon;

        case @".jpg":
        case @".jpeg":
            return ImageFormat.Jpeg;

        case @".png":
            return ImageFormat.Png;

        case @".tif":
        case @".tiff":
            return ImageFormat.Tiff;

        case @".wmf":
            return ImageFormat.Wmf;

        default:
            throw new NotImplementedException();
    }
}
Créé 23/11/2012 à 06:30
source utilisateur

voix
5
    private static ImageFormat GetImageFormat(string format)
    {
        ImageFormat imageFormat = null;

        try
        {
            var imageFormatConverter = new ImageFormatConverter();
            imageFormat = (ImageFormat)imageFormatConverter.ConvertFromString(format);
        }
        catch (Exception)
        {

            throw;
        }

        return imageFormat;
    }
Créé 10/11/2014 à 14:32
source utilisateur

voix
1

voir l'article CodeProject sur les associations de fichiers http://www.codeproject.com/KB/dotnet/System_File_Association.aspx

Créé 26/08/2009 à 23:02
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more