JPEG libraries for C#
.NET has no cross-platform JPEG codec built in (System.Drawing works only on Windows in .NET 6+). The choices:
- ImageSharp is pure managed code with no native dependencies: decode, resize, auto-orient, read and write Exif, encode baseline or progressive with chosen subsampling. Check its license: free under Apache 2.0 for open source and companies under $1M annual revenue, otherwise a paid license (Six Labors Split License).
- SkiaSharp wraps Google’s Skia (as used in Chrome), with native binaries for every platform. Fast decoding, decoding at reduced size, and drawing. MIT license.
- Magick.NET is ImageMagick for .NET: every JPEG option (sampling factors, progressive, quantization tables, size hints for fast loading), Exif and 100+ other formats. Apache 2.0.
- MetadataExtractor only reads metadata: Exif, GPS, XMP, IPTC, ICC and maker notes from cameras. Use it alongside any of the others.
- ImageSharp ImageSharp is a fully managed .NET library for reading and writing JPEG. How to resize and auto-orient photos, read Exif, write progressive JPEG.
- Magick.NET Magick.NET is the .NET wrapper of ImageMagick. How to read and write JPEG in C#: quality, progressive, chroma subsampling, fast thumbnail loading, Exif.
- MetadataExtractor MetadataExtractor is a .NET library that reads Exif, GPS, XMP, IPTC and ICC metadata from JPEG files. How to list all tags, get the camera model, date taken.
- SkiaSharp SkiaSharp is the .NET binding of Google's Skia graphics library. How to decode and encode JPEG, decode at reduced size for thumbnails.