---
title: "Read Multiframe TIFF Memory Friendly"
canonical: https://www.graphicsmill.com/samples/Codecs/Tiff/ReadMultiframeTiffMemoryFriendly_cs
product: "Graphics Mill"
source: "Codecs/Tiff/ReadMultiframeTiffMemoryFriendly.cs"
---

# Read Multiframe TIFF Memory Friendly

Reads multiframe image in TIFF format using memory-friendly Pipeline API.

## Instruction

Write a memory-friendly C# program using the Pipeline API that reads a multi-frame TIFF image and saves each frame as a separate JPEG image.

## Usings

```csharp
using Aurigma.GraphicsMill.Codecs;
```

## Code Snippet

```csharp
using (var reader = new TiffReader("WriteMultiframeTiff.tif"))
{
    for (int i = 0; i < reader.Frames.Count; i++)
    {
        using (var writer = new JpegWriter("ReadMultiframeTiffMemoryFriendly_" + i + ".jpg"))
        {
            Pipeline.Run(reader.Frames[i] + writer);
        }
    }
}
```

## Explanation

Below is a C# code snippet that uses the memory-efficient Pipeline API to read each frame of a multi-frame TIFF and save it as an individual JPEG file.

This code avoids loading the full image into memory by streaming each frame from the TIFF directly into a JPEG file.

## Tags

- [Multiple frames](<https://www.graphicsmill.com/samples/tags/multi-frame_md>): Handling multi-frame image formats
- [Pipeline](<https://www.graphicsmill.com/samples/tags/pipeline_md>): Working with images via the Pipeline API
- [Read](<https://www.graphicsmill.com/samples/tags/read_md>): Reading images with codecs
- [TIFF](<https://www.graphicsmill.com/samples/tags/tiff_md>): Reading and writing TIFF images

## Input

- [WriteMultiframeTiff.tif](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/WriteMultiframeTiff_tif>) (download)

## Output

- [ReadMultiframeTiffMemoryFriendly\_0.jpg](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/ReadMultiframeTiffMemoryFriendly_0_jpg>) (preview)
- [ReadMultiframeTiffMemoryFriendly\_1.jpg](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/ReadMultiframeTiffMemoryFriendly_1_jpg>) (preview)

## Used APIs

- [Aurigma.GraphicsMill.Codecs.FrameCollectionBase.Count](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_FrameCollectionBase_Count.htm.md>)
- [Aurigma.GraphicsMill.Codecs.JpegWriter](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_JpegWriter.htm.md>)
- [Aurigma.GraphicsMill.Codecs.TiffReader](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_TiffReader.htm.md>)
- [Aurigma.GraphicsMill.Codecs.TiffReader.Frames](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_TiffReader_Frames.htm.md>)
