Как получить тип файла изображения с помощью GDI + в C ++? - PullRequest
1 голос
/ 09 июня 2009

Некоторые изображения в формате JPEG сохраняются с расширением .bmp. Я хочу использовать gdi +, чтобы получить реальный тип файла изображения, как я могу это сделать?

Большое спасибо!

1 Ответ

2 голосов
/ 09 июня 2009

Вот версия C # (с использованием пространства имен System.Drawing.Imaging):

    public static ImageFormat getImageFileFormat( string filename )
    {
        using ( var fs = new System.IO.FileStream( filename, System.IO.FileMode.Open ) )
        using ( var img = Image.FromStream( fs, true, false ) )
            return img.RawFormat;
    }

С помощью этой функции вы можете сделать что-то вроде:

    ImageFormat fmt = getImageFileFormat( @"some file" );
    if ( fmt.Guid == ImageFormat.Jpeg.Guid )
    {
      ...
    }
    else if ( fmt.Guid == ImageFormat.Bmp.Guid )
    {
      ...
    }
...