ImageGear v26.3 - Updated
Developer Guide / How to Work with ... / Common Operations / Detect Image Format
In This Topic
    Detect Image Format
    In This Topic

    Image formats are detected with ImGearFileFormats.Detect(Stream) after configuring ImageGear's global file format list, managed with ImGearFileFilters.

    File formats are checked in the order in which they occur in this list. Re-ordering this list allows you to customize the format detection process. Raster Color and Grayscale formats are added automatically when ImGearCommonFormats.Initialize() is called. Other formats, such as PDF, Email and Office, must be added explicitly with ImGearFileFormats.Filters.Add(IImGearFormat) followed by assembly initialization as required. If you do not need a particular format, it can be omitted or removed from the list.

    See also Supported Formats and Compressions.

    Detect Raster Formats

    To allow ImGearFileFormats.Detect(Stream) to identify Color and Grayscale Raster formats, use ImGearCommonFormats.Initialize() to automatically add these formats to the ImGearFileFilters file format list.

    The following example illustrates how to detect raster formats BMP, CLP, CUR, DIB, DNG, GIF, JPEG, PNG, and TIFF with ImGearFileFormats.Detect(Stream):

    // Initialize common formats.
    ImGearCommonFormats.Initialize();
    
    using (Stream inputStream = new FileStream("example.jpg", FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        // Detect image format using a valid stream.
        IImGearFormat format = ImGearFileFormats.Detect(inputStream);
    
        // Output image format information.
        Console.WriteLine("Full Name of Image Format: " + format.FullName);
        Console.WriteLine("Name of Image Format: " + format.Name);
        Console.WriteLine("Default Extension for Image Format: " + format.DefaultExtension);
        Console.WriteLine("ID for Image Format: " + format.ID);
        Console.WriteLine("MIME Type for Image Format: " + format.MIMEType);
    }
    

    Detect PDF Formats

    To allow ImGearFileFormats.Detect(Stream) to identify PDF formats, after initializing common image formats with ImGearCommonFormats.Initialize(), use ImGearFileFormats.Filters.Add(IImGearFormat) with objects returned from ImGearPDF.CreatePDFFormat and ImGearPDF.CreatePSFormat. Finally, initalize the ImGear.Formats.PDF assembly with ImGearPDF.Initialize. See also Getting Started with ImageGear PDF.

    The following example illustrates how to detect PDF and PS with ImGearFileFormats.Detect(Stream):

    // Initialize common formats.
    ImGearCommonFormats.Initialize();
    
    // Add the PDF file format filter.
    ImGearFileFormats.Filters.Add(ImGearPDF.CreatePDFFormat());
    
    // Add the PS file format filter.
    ImGearFileFormats.Filters.Add(ImGearPDF.CreatePSFormat());
    
    // Initialize PDF support. Initialize for each process or thread.
    ImGearPDF.Initialize();
    
    using (Stream inputStream = new FileStream("example.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        // Detect image format using a valid stream.
        IImGearFormat format = ImGearFileFormats.Detect(inputStream);
    
        // Output image format information.
        Console.WriteLine("Full Name of Image Format: " + format.FullName);
        Console.WriteLine("Name of Image Format: " + format.Name);
        Console.WriteLine("Default Extension for Image Format: " + format.DefaultExtension);
        Console.WriteLine("ID for Image Format: " + format.ID);
        Console.WriteLine("MIME Type for Image Format: " + format.MIMEType);
    }
    

    Detect Email Formats

    To allow ImGearFileFormats.Detect(Stream) to identify Email formats, after enabling file format supprt for PDF and initializating the ImGear.Formats.PDF assembly, use ImGearFileFormats.Filters.Add(IImGearFormat) with the objects returned from ImGearEmail.CreateEMLFormat() and ImGearEmail.CreateMSGFormat(). See also How to Work with Email.

    The following example illustrates how to detect EML and MSG with ImGearFileFormats.Detect(Stream):

    // Initialize common formats.
    ImGearCommonFormats.Initialize();
    
    // Add PDF format to filters list.
    ImGearFileFormats.Filters.Add(ImGearPDF.CreatePDFFormat());
    
    // Initialize PDF support. Initialize for each process or thread.
    ImGearPDF.Initialize();
    
    // Add the Email MSG file format filter.
    ImGearFileFormats.Filters.Add(ImGearEmail.CreateMSGFormat());
    
    // Add the Email EML file format filter.
    ImGearFileFormats.Filters.Add(ImGearEmail.CreateEMLFormat());
    
    using (Stream inputStream = new FileStream("example.msg", FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        // Detect image format using a valid stream.
        IImGearFormat format = ImGearFileFormats.Detect(inputStream);
    
        // Output image format information.
        Console.WriteLine("Full Name of Image Format: " + format.FullName);
        Console.WriteLine("Name of Image Format: " + format.Name);
        Console.WriteLine("Default Extension for Image Format: " + format.DefaultExtension);
        Console.WriteLine("ID for Image Format: " + format.ID);
        Console.WriteLine("MIME Type for Image Format: " + format.MIMEType);
    }
    

    Detect Office Formats

    To allow ImGearFileFormats.Detect(Stream) to identify Office formats, after enabling file format supprt for PDF and initializating the ImGear.Formats.PDF assembly, use ImGearFileFormats.Filters.Add(IImGearFormat) with the object returned from ImGearOffice.CreateWordFormat(), ImGearOffice.CreatePowerPointFormat() and ImGearOffice.CreateExcelFormat(). Finally, initialize the ImageGear.Formats.Office assembly with ImGearOffice.Initialize. See also Getting Started with ImageGear Office.

    The following example illustrates how to detect DOCX, DOC, PPTX, PPT, XLSX and XLS with ImGearFileFormats.Detect(Stream):

    // Initialize common formats.
    ImGearCommonFormats.Initialize();
    
    // Add PDF format to filters list.
    ImGearFileFormats.Filters.Add(ImGearPDF.CreatePDFFormat());
    
    // Initialize PDF support. Initialize for each process or thread.
    ImGearPDF.Initialize();
    
    // Add the Office Word file format filter.
    ImGearFileFormats.Filters.Add(ImGearOffice.CreateWordFormat());
    
    // Add the Office PowerPoint file format filter.
    ImGearFileFormats.Filters.Add(ImGearOffice.CreatePowerPointFormat());
    
    // Add the Office Excel file format filter.
    ImGearFileFormats.Filters.Add(ImGearOffice.CreateExcelFormat());
    
    // Initialize Office support for each process or thread by providing a path to your LibreOffice installation.
    // See ImageGear documentation for more information.
    ImGearOffice.Initialize(@"path_to_libreoffice_bin_directory");
    
    using (Stream inputStream = new FileStream("example.docx", FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        // Detect image format using a valid stream.
        IImGearFormat format = ImGearFileFormats.Detect(inputStream);
    
        // Output image format information.
        Console.WriteLine("Full Name of Image Format: " + format.FullName);
        Console.WriteLine("Name of Image Format: " + format.Name);
        Console.WriteLine("Default Extension for Image Format: " + format.DefaultExtension);
        Console.WriteLine("ID for Image Format: " + format.ID);
        Console.WriteLine("MIME Type for Image Format: " + format.MIMEType);
    }