IronBarcode How-Tos Read Multipage Image How to Read Barcodes from Multi-Page/Frame GIF and TIFF Hairil Hasyimi Bin Omar Updated:July 28, 2025 IronBarcode supports various image format inputs for reading, including multi-page and multi-frame GIF and TIFF image formats. This offers ease of use for users to simply use the image without manually separating the frames or pages of a TIFF or GIF file. Let's explore how to use IronBarcode to read these file formats. How to Read Barcodes from Multi-Page/Frame GIF and TIFF Download the C# library for reading barcodes Prepare GIF and TIFF images for barcode detection Pass the multi-frame GIF and TIFF images to the Read method Apply image filters and options to improve accuracy and performance Convert images to multi-frame GIF and TIFF Get Started with IronBarcode Start using IronBarcode in your project today with a free trial. First Step: Start for Free Read Multiframe GIF and TIFF Images Reading multiframe GIF and TIFF images using IronBarcode is as easy as reading a single image because IronBarcode readily accepts multipage image files into the BarcodeReader.Read method. The users do not have to do any image preparation as all of them have been internalized in the library. The code example below demonstrates how to read multipage GIF and TIFF files: :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-read-tif.cs using IronBarCode; using System; // Read barcode from TIF image BarcodeResults results = BarcodeReader.Read("sample.tif"); // Output the barcodes value to console foreach (var result in results) { Console.WriteLine(result.Value); } Imports IronBarCode Imports System ' Read barcode from TIF image Private results As BarcodeResults = BarcodeReader.Read("sample.tif") ' Output the barcodes value to console For Each result In results Console.WriteLine(result.Value) Next result $vbLabelText $csharpLabel Convert Images to GIF and TIFF Learn how to convert images to multipage TIFF and GIF by utilizing our open-source library, IronDrawing. Now, let's look at the code example below on how to generate a multipage GIF or TIFF image. :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-create-tiff-gif.cs using IronBarCode; using IronSoftware.Drawing; using System.Collections.Generic; // Import images List<AnyBitmap> images = new List<AnyBitmap>() { AnyBitmap.FromFile("image1.png"), AnyBitmap.FromFile("image2.png"), AnyBitmap.FromFile("image3.png"), AnyBitmap.FromFile("image4.jpg"), AnyBitmap.FromFile("image5.jpg") }; // Convert TIFF from images AnyBitmap tiffImage = AnyBitmap.CreateMultiFrameTiff(images); // Export TIFF tiffImage.SaveAs("multiframetiff.tiff"); // Convert GIF from images AnyBitmap gifImage = AnyBitmap.CreateMultiFrameGif(images); // Export GIF gifImage.SaveAs("multiframegif1.gif"); Imports IronBarCode Imports IronSoftware.Drawing Imports System.Collections.Generic ' Import images Private images As New List(Of AnyBitmap)() From {AnyBitmap.FromFile("image1.png"), AnyBitmap.FromFile("image2.png"), AnyBitmap.FromFile("image3.png"), AnyBitmap.FromFile("image4.jpg"), AnyBitmap.FromFile("image5.jpg")} ' Convert TIFF from images Private tiffImage As AnyBitmap = AnyBitmap.CreateMultiFrameTiff(images) ' Export TIFF tiffImage.SaveAs("multiframetiff.tiff") ' Convert GIF from images Dim gifImage As AnyBitmap = AnyBitmap.CreateMultiFrameGif(images) ' Export GIF gifImage.SaveAs("multiframegif1.gif") $vbLabelText $csharpLabel From the code snippet above, we first group a number of image files by importing them into a list of AnyBitmap objects. This list can then be used as a parameter when calling the AnyBitmap.CreateMultiFrameTiff and AnyBitmap.CreateMultiFrameGif methods to obtain the multipage TIFF and multipage GIF objects, respectively. While both multipage GIF and TIFF offer a way to group images into a single file, there are several differences between the two formats, as outlined below: Aspect Multipage GIF Multipage TIFF Compression GIF images use lossless compression, meaning that no image data is lost during compression. This results in relatively larger file sizes compared to formats with lossy compression. TIFF files can use various compression methods, including lossless compression (such as LZW) and lossy compression (such as JPEG). This flexibility allows TIFF files to balance between file size and image quality. Color Depth GIF supports up to 256 colors (8-bit color depth), which is limited compared to other formats. This limited color palette can result in a loss of detail and color accuracy, especially for photographs and images with gradients TIFF supports various color depths, including 1-bit (binary), 8-bit (256 colors), 24-bit (true color), and more. This flexibility allows TIFF to store images with different levels of color detail. Transparency GIF supports binary transparency, which means that a single color can be fully transparent, and the rest of the colors are fully opaque. This lack of partial transparency can sometimes lead to jagged edges in images with smooth transitions. TIFF supports multiple forms of transparency, including binary transparency (similar to GIF) and alpha channel transparency. Alpha channel transparency allows for smooth transitions and semi-transparent pixels, providing high-quality transparency effects. Animation GIF supports simple animations by combining multiple frames into a single file. Each frame can have its own time delay, creating a basic form of animation. GIF animations are widely supported on the web. TIFF is not primarily designed for animations. While it can store multiple images, it lacks built-in animation support like GIF. Each page in a multipage TIFF file is typically a separate image rather than a frame in an animation sequence. Advanced Barcode Reading Although IronBarcode works directly out of the box, some images may require configuring the BarcodeReaderOptions class to achieve accurate and fast barcode reading. You can find more information on this class in the 'How to read Barcodes from Image Files (jpg, png, gif, tiff, svg, bmp)' article. The code snippet below provides examples of the necessary properties that can be configured in the BarcodeReaderOptions class. :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-advance.cs using IronBarCode; using System; // Configure filters ImageFilterCollection filters = new ImageFilterCollection() { new SharpenFilter(3.5f), new ContrastFilter(2) }; // Configure options BarcodeReaderOptions options = new BarcodeReaderOptions() { ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode, ImageFilters = filters, ExpectMultipleBarcodes = true, Speed = ReadingSpeed.Balanced }; // Read barcode from TIF image BarcodeResults results = BarcodeReader.Read("sample.tif", options); // Output the barcodes value to console foreach (var result in results) { Console.WriteLine(result.Value); } Imports IronBarCode Imports System ' Configure filters Private filters As New ImageFilterCollection() From { New SharpenFilter(3.5F), New ContrastFilter(2) } ' Configure options Private options As New BarcodeReaderOptions() With { .ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode, .ImageFilters = filters, .ExpectMultipleBarcodes = True, .Speed = ReadingSpeed.Balanced } ' Read barcode from TIF image Private results As BarcodeResults = BarcodeReader.Read("sample.tif", options) ' Output the barcodes value to console For Each result In results Console.WriteLine(result.Value) Next result $vbLabelText $csharpLabel In the code snippet, we not only set BarcodeReaderOptions properties, but we also apply some filters, specifically the SharpenFilter and ContrastFilter. These filters essentially help in improving the clarity of blurry images for barcode detection and reading. You can find more information on image correction filters in the 'How to use Image Correction Filters' article. For the BarcodeReaderOptions object, we suggest that users include ExpectMultipleBarcodes for IronBarcode to scan all available barcodes in the image file, Speed to balance between the reading accuracy and performance, ExpectBarcodeTypes to further increase performance, and ImageFilters to apply the filters set in ImageFilterCollection for reading accuracy. Though setting the BarcodeReaderOptions object is optional for most use cases, it is important for users to get the most out of IronBarcode when reading barcodes from multipage GIF and TIFF image files. Frequently Asked Questions How can I read barcodes from multipage GIF and TIFF files in C#? You can use IronBarcode to read barcodes from multipage GIF and TIFF files by utilizing the BarcodeReader.Read method. Simply pass the image file to the method and IronBarcode will process the multi-page or multi-frame images seamlessly. What are the benefits of using IronBarcode for reading multipage image files? IronBarcode simplifies the process of reading multipage image files by accepting them directly without requiring manual separation of frames or pages. It also offers advanced options like image filters and BarcodeReaderOptions to enhance reading accuracy. Can I use image filters to improve barcode reading accuracy in IronBarcode? Yes, you can apply image filters such as Grayscale, SharpenFilter, and ContrastFilter in IronBarcode to enhance image clarity and improve barcode reading accuracy. Is it possible to read multiple barcodes in a single image using IronBarcode? Yes, IronBarcode can detect multiple barcodes in a single image by enabling the ExpectMultipleBarcodes option within the BarcodeReaderOptions class. How do I convert images to multipage TIFF or GIF using C#? You can convert images to multipage TIFF or GIF formats using the IronDrawing library. Import images into a list of AnyBitmap objects and use AnyBitmap.CreateMultiFrameTiff or AnyBitmap.CreateMultiFrameGif methods. What is the difference between multipage GIF and TIFF formats? Multipage GIFs use lossless compression and support simple animations but are limited to 256 colors. Multipage TIFFs support various compression methods, higher color depths, and transparency options but are not designed for animations. Do I need to preprocess images before reading barcodes with IronBarcode? No preprocessing is required. IronBarcode can directly handle and read multi-page image files without needing any manual preparation. How can advanced barcode reading techniques be applied using IronBarcode? Advanced barcode reading in IronBarcode can be achieved by configuring the BarcodeReaderOptions class. Options like ExpectMultipleBarcodes, Speed, and ImageFilters can be set to optimize performance and accuracy. Hairil Hasyimi Bin Omar Chat with engineering team now Software Engineer Like all great engineers, Hairil is an avid learner. He’s refining his knowledge of C#, Python, and Java, using that knowledge to add value to team members across Iron Software. Hairil joined the Iron Software team from Universiti Teknologi MARA in Malaysia, where he graduated with a Bachelor's degree ...Read More Ready to Get Started? Free NuGet Download Total downloads: 1,818,593 View Licenses