---
title: "Read and Write JPEG"
canonical: https://www.graphicsmill.com/samples/Codecs/Jpeg/ReadAndWriteJpeg_cs
product: "Graphics Mill"
source: "Codecs/Jpeg/ReadAndWriteJpeg.cs"
---

# Read and Write JPEG

Reads and writes image in JPEG format.

## Instruction

Write a C# program that loads a JPEG image, vertically flips it, and saves it using high-quality JPEG encoding settings including 90% quality, no chroma subsampling, and progressive mode enabled.

## Usings

```csharp
using Aurigma.GraphicsMill.Codecs;
using Aurigma.GraphicsMill.Transforms;
```

## Code Snippet

```csharp
using (var bitmap = new Bitmap("Chicago.jpg"))
{
    bitmap.Transforms.Flip(FlipType.Vertical);

    var jpegSettings = new JpegSettings()
    {
        Quality = 90,
        UseSubsampling = false,
        IsProgressive = true,
    };

    bitmap.Save("ReadWriteJpeg.jpg", jpegSettings);
}
```

## Explanation

Here is a C# program that reads a JPEG image, flips it vertically, and saves it as a new JPEG file with specific compression settings:

This code loads an input JPEG file, applies a vertical flip, and saves it as an output JPEG using 90% quality, progressive encoding, and no chroma subsampling.

## Tags

- [Bitmap](<https://www.graphicsmill.com/samples/tags/bitmap_md>): Working with images via the Bitmap API
- [Filesystem](<https://www.graphicsmill.com/samples/tags/filesystem_md>): Loading and saving images from files
- [JPG](<https://www.graphicsmill.com/samples/tags/jpg_md>): Reading and writing JPEG images
- [Read](<https://www.graphicsmill.com/samples/tags/read_md>): Reading images with codecs
- [Write](<https://www.graphicsmill.com/samples/tags/write_md>): Writing images with codecs

## Input

- [Chicago.jpg](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/Chicago_jpg>) (preview)

## Output

- [ReadWriteJpeg.jpg](<https://www.graphicsmill.com/samples/Codecs/compiled/Debug/ReadWriteJpeg_jpg>) (preview)

## Used APIs

- [Aurigma.GraphicsMill.Bitmap.Transforms](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Bitmap_Transforms.htm.md>)
- [Aurigma.GraphicsMill.Codecs.JpegSettings](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_JpegSettings.htm.md>)
- [Aurigma.GraphicsMill.Codecs.JpegSettings.IsProgressive](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_JpegSettings_IsProgressive.htm.md>)
- [Aurigma.GraphicsMill.Codecs.JpegSettings.Quality](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_JpegSettings_Quality.htm.md>)
- [Aurigma.GraphicsMill.Codecs.JpegSettings.UseSubsampling](<https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_JpegSettings_UseSubsampling.htm.md>)
- [Aurigma.GraphicsMill.Transforms.FlipType](<https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Transforms_FlipType.htm.md>)
- [Aurigma.GraphicsMill.TransformsProvider.Flip(FlipType)](<https://www.graphicsmill.com/docs/gm/M_Aurigma_GraphicsMill_TransformsProvider_Flip_1_e191919c.htm.md>)
