PictureSharp 0.7.8

There is a newer version of this package available.
See the version list below for details.
dotnet add package PictureSharp --version 0.7.8
                    
NuGet\Install-Package PictureSharp -Version 0.7.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PictureSharp" Version="0.7.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PictureSharp" Version="0.7.8" />
                    
Directory.Packages.props
<PackageReference Include="PictureSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PictureSharp --version 0.7.8
                    
#r "nuget: PictureSharp, 0.7.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PictureSharp@0.7.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PictureSharp&version=0.7.8
                    
Install as a Cake Addin
#tool nuget:?package=PictureSharp&version=0.7.8
                    
Install as a Cake Tool

PictureSharp

A pure managed image processing library for .NET. No native dependencies.

PictureSharp reads, writes and processes JPEG, PNG, WebP, GIF, BMP, ICO and PCX in 100% C# for .NET 10 and later, with no NuGet dependencies, native libraries or P/Invoke. Output is verified pixel for pixel against libwebp, libjpeg-turbo and Pillow.

Format Best for Transparency Animation HDR gain maps
JPEG photos read, write
PNG graphics, screenshots ✔ ✔ APNG
WebP the web, lossy or lossless ✔ ✔
GIF simple animations ✔ ✔
BMP Windows bitmaps ✔
ICO favicons, app icons ✔
PCX legacy files ✔
HEIC ¹ iPhone photos ✔ read
TIFF ² scans, print, archives ✔

Every format except TIFF is both read and written. Variants and options for each one are listed in Loading and saving.

¹ With the PictureSharp.Heif plugin package, also 100% C#: dotnet add package PictureSharp.Heif.

² Read only, with the PictureSharp.Tiff plugin, also 100% C#: classic TIFF and BigTIFF with LZW, Deflate, PackBits, JPEG and CCITT compression. Not on NuGet yet.

  • Resizing, geometry, color adjustments, filters, compositing and EXIF auto-orientation
  • Levels, gamma, auto contrast, histograms, trimming, alpha masks and W3C blend modes
  • Photo adjustments: exposure, white balance, shadows/highlights, clarity, vibrance, vignette and edge-preserving denoise
  • Conversion of ICC and PNG color descriptions to sRGB, linear-light resize and compositing
  • Fast JPEG thumbnails decoded at 1/2, 1/4 or 1/8 scale
  • Frame-by-frame reading and writing of GIF, APNG and WebP animations
  • Typed EXIF and ICC/XMP metadata, editable without recompressing the image
  • HDR photos with gain maps (ISO 21496-1, Apple): reconstruction, tone mapping, editing and saving as JPEG
  • Limits for untrusted input and cancellation of all long-running work
  • SIMD on x64 and ARM64, bit-identical to the scalar code
  • Extensible with format plugins (including HDR gain maps and metadata) and custom processors
  • Optional adapter packages for System.Drawing, SkiaSharp and ASP.NET Core

Quick start

using PictureSharp;

using var image = await Image.LoadAsync("photo.jpg");
image.Mutate(x => x
    .AutoOrient()
    .Resize(1600, 0)                 // 0 keeps the aspect ratio
    .UnsharpMask());
await image.SaveAsync("photo.webp");  // the format comes from the extension

using Image thumbnail = image.Clone(x => x.Thumbnail(256, 256));
thumbnail.Save("thumbnail.png");

Mutate edits the image; Clone returns an edited copy.

Documentation

The public API may still change between 0.x releases.

Building from source

dotnet build -c Release
dotnet test -c Release

License

PictureSharp is licensed under MIT. It includes ports from libwebp, libjpeg-turbo, zlib and Pillow, and is based in part on the work of the Independent JPEG Group; see THIRD-PARTY-NOTICES.txt.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on PictureSharp:

Package Downloads
PictureSharp.AspNetCore

Returns PictureSharp images from ASP.NET Core endpoints with Accept-based WebP/PNG/JPEG negotiation, and reads uploaded images with size limits and request cancellation.

PictureSharp.Drawing

Copies PictureSharp images to and from System.Drawing.Bitmap (Windows).

PictureSharp.Skia

Copies PictureSharp images to and from SkiaSharp SKBitmap, SKImage and SKPixmap with an explicit alpha policy.

PictureSharp.Heif

HEIC/HEIF format plugin for PictureSharp, written entirely in C#. No native dependencies.

PictureSharp.Tiff

TIFF format plugin for PictureSharp, written entirely in C#. No native dependencies.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.9.0 81 10/28/2026
0.8.5 180 10/26/2026
0.8.4 85 10/26/2026
0.8.3 73 10/26/2026
0.8.2 97 10/25/2026
0.8.1 98 10/23/2026
0.8.0 112 10/23/2026
0.7.13 95 10/22/2026
0.7.12 86 10/22/2026
0.7.10 200 10/22/2026
0.7.9 145 10/21/2026
0.7.8 120 10/21/2026
0.7.7 100 10/20/2026
0.7.6 270 10/18/2026
0.7.5 85 10/18/2026
0.7.4 87 10/18/2026
0.7.3 93 10/18/2026
0.7.2 89 10/17/2026
0.7.1 129 10/17/2026
0.7.0 85 10/17/2026
Loading failed

0.7.8 adds ImageDecodeContext.DecodeEmbeddedPart for plugins that store an image as strips or tiles in another format (JPEG tiles in TIFF): each part decodes within its own allowance instead of being charged against MaxPixels and MaxFrames next to the reserved image. Existing API and results unchanged. Notes: https://github.com/art-ix/PictureSharp/blob/v0.7.8/docs/releases/release-0.7.8.md