SharpAstro.Color.Icc 3.32.1561

This package has a SemVer 2.0.0 package version: 3.32.1561+25f80f8a848ba90b62c5922e98c826c7181bce96.
dotnet add package SharpAstro.Color.Icc --version 3.32.1561
                    
NuGet\Install-Package SharpAstro.Color.Icc -Version 3.32.1561
                    
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="SharpAstro.Color.Icc" Version="3.32.1561" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpAstro.Color.Icc" Version="3.32.1561" />
                    
Directory.Packages.props
<PackageReference Include="SharpAstro.Color.Icc" />
                    
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 SharpAstro.Color.Icc --version 3.32.1561
                    
#r "nuget: SharpAstro.Color.Icc, 3.32.1561"
                    
#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 SharpAstro.Color.Icc@3.32.1561
                    
#: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=SharpAstro.Color.Icc&version=3.32.1561
                    
Install as a Cake Addin
#tool nuget:?package=SharpAstro.Color.Icc&version=3.32.1561
                    
Install as a Cake Tool

SharpAstro Codecs

NuGet CI/CD

A family of pure-managed, AOT-compatible image-codec packages for .NET 10 — no native binaries. Each format ships as an independent NuGet, and SharpAstro.Codecs is a thin facade that sniffs a byte stream by its magic bytes and dispatches to the right decoder, so a consumer can reference one package instead of cherry-picking codecs.

Format Decode Encode Notes
PNG ✅ ✅ 8/16-bit RGBA/Gray, ICC + HDR chunks (cICP / mDCv / cLLI)
JPEG ✅ ✅ baseline + progressive; scaled 1/2–1/8 LOD decode; baseline encode. Plus lossless JPEG (T.81 Annex H) as a separate decoder
Ultra HDR ✅ ✅ gain-map JPEG; decodes transparently through the facade — float path is HDR, 8-bit path the SDR base
TIFF ✅ ✅ multi-page, 8/16/32-bit uint + float, Deflate/Zlib/LZW, Predictor 2
JPEG XR ✅ ✅ jxrlib-exact — codestream byte-identical to the reference encoder
OpenEXR ✅ ✅ scanline, HALF/FLOAT/UINT, NONE/RLE/ZIP/ZIPS/PIZ
Radiance RGBE ✅ ✅ .hdr / .pic to scene-linear float RGB; RGBE and XYZE, new/old RLE, EXPOSURE reported; value-exact vs Magick.NET both ways
JPEG XL ✅ ✅ clean-room; lossless Modular + lossy VarDCT
JBIG2 ✅ — bilevel, for PDF's /JBIG2Decode. Every region type T.88 defines, on the arithmetic path
PNM / PAM ✅ ✅ Netpbm P1–P7 read; writes P5/P6 and P7 (grey, RGB, ± alpha) at 8 and 16 bit
WebP ✅ — VP8 lossy, VP8L lossless, ALPH, animation + seek, ICC/EXIF/XMP metadata
BMP ✅ ✅ Windows + OS/2 DIB, 1–32 bpp, RLE4/RLE8, bit-field masks, V5 ICC; writes 24-bit BGR and 32-bit BGRA with alpha
GIF ✅ (stills + animation frames) — GIF87a/GIF89a, global/local palettes, interlace, transparency, disposal; composited full-canvas frames; LZW shared with TIFF
TGA ✅ ✅ types 1/2/3 + RLE 9/10/11, 8–32-bit; writes 24/32-bit raw or RLE. The facade recognises it only by the TGA 2.0 footer (TRUEVISION-XFILE.): TGA has no magic number, so footerless files decode via SharpAstro.Tga.TgaReader directly
EXIF ✅ — metadata only, from JPEG / TIFF / PNG

See CODECS.md for the full per-package matrix, what each codec does and does not support, and how to pick the right one. A bundled sRGB ICC profile ships in SharpAstro.Color.Icc for embedding.

The facade decodes WebP still images and frame 0 of animated WebP. Use SharpAstro.Webp.WebpDecoder.DecodeAnimation or WebpAnimationDecoder to access animation frames and seek through the timeline.

Likewise the facade returns frame 0 of a GIF. SharpAstro.Gif.GifDecoder.DecodeAnimation returns every frame as a full-canvas RGBA8 copy (disposal applied, raw 1/100 s delays, loop count), and GifAnimationDecoder streams them through one canvas. GIF is decode-only, by design.

All packages target net10.0, are IsAotCompatible, ship SourceLink debugging, and publish in lockstep (shared Major.Minor + CI run-number patch).

NuGet

# One facade for sniff-and-decode (PNG, JPEG incl. Ultra HDR, TIFF, JXR, EXR, JXL, WebP, GIF, Radiance .hdr, Netpbm, BMP, TGA with footer, .jb2):
dotnet add package SharpAstro.Codecs

# ...or reference just the format(s) you need:
dotnet add package SharpAstro.Png
dotnet add package SharpAstro.Jxr
dotnet add package SharpAstro.Webp
dotnet add package SharpAstro.Gif

Usage

Decode any supported still image through the facade — sniff the header, size a buffer, decode into it:

using SharpAstro.Codecs;

var bytes = File.ReadAllBytes(path);
if (ImageCodecs.TryReadInfo(bytes, out var info))
{
    var rgba = new byte[info.Width * info.Height * 4];
    ImageCodecs.TryDecodeIntoRgba8(bytes, rgba);      // zero-copy into your buffer
    // ...or ImageCodecs.TryDecode(bytes, out IDecodedImage img) for the full-fidelity raster.
}

Each codec is also usable directly — e.g. PngReader / PngWriter, JpegDecoder.Decode / DecodeTo, TiffReader / TiffWriter, JxrImageCodec, ExrImageCodec, JxlImageCodec. See CODECS.md.

JBIG2 is the one format whose main entry point is not the facade. A PDF-embedded JBIG2 stream has no file header to sniff, keeps its shared segment dictionaries in a separate /JBIG2Globals stream, and takes its dimensions from the image dictionary — so those callers pass all three explicitly:

using SharpAstro.Jbig2;

// `embedded` / `globals` are the PDF streams; width/height come from the image dictionary.
var page = Jbig2Decoder.Decode(embedded, globals, width, height);
var bits = page.Bits;        // one byte per pixel, 1 = black (T.88 polarity)
var gray = page.ToGray8();   // ...or the 8-bit projection, black 0 / white 255

Standalone .jb2 files do have a signature, and decode through the facade like anything else — generic, symbol-coded and halftone pages alike.

JBIG2 covers every region type T.88 defines on the arithmetic path: generic regions (both the template coder and MMR / ITU-T T.6, the Group 4 fax coding), refinement regions, symbol dictionaries and text regions, and pattern dictionaries with halftone regions. The Huffman-coded variants (SDHUFF / SBHUFF) are refused rather than guessed at — no available encoder emits them, so an implementation would have nothing to validate itself against.

Building from source

git clone https://github.com/SharpAstro/Codecs
cd Codecs
dotnet build Codecs.JustTests.sln -c Release
dotnet test  Codecs.JustTests.sln -c Release

Requires the .NET 10 SDK.

License

Unlicense (public domain).

Credits

This repository began as a fork of StbSharp/StbImageSharp (Roman Shapiro's C# port of Sean Barrett's stb_image.h, via the Hebron C-to-C# transpiler). SharpAstro.Jpeg's decoder was ported from and validated byte-exact against that reference decoder before the stb port itself was retired from the repo.

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.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SharpAstro.Color.Icc:

Package Downloads
SharpAstro.Png

Pure-managed PNG encoder + decoder for .NET. Writer: adaptive per-row filter selection (libpng "minimum sum of absolute values" heuristic), 8/16-bit RGBA/Gray. Reader: chunk parsing with CRC validation, color types 0/2/4/6 at 8/16-bit. Both sides handle iCCP / sRGB / gAMA / cHRM / eXIf metadata plus PNG-3 HDR signaling chunks cICP (Coding-Independent Code Points), mDCv (Mastering Display Color Volume), cLLI (Content Light Level Info) — full HDR10 / HLG round-trip. Also exports PngPredictor as a reusable row-unfilter building block (TIFF Predictor=2 / PDF FlateDecode). AOT-compatible.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.32.1561 31 11/3/2026
3.32.1541 32 11/3/2026
3.31.1511 30 11/3/2026
3.30.1461 35 11/3/2026
3.29.1431 31 11/3/2026
3.29.1401 36 11/3/2026
3.29.1361 33 11/3/2026
3.28.1341 72 11/3/2026
3.27.1311 35 11/3/2026
3.26.1281 39 11/3/2026
3.25.1261 47 11/3/2026
3.24.1241 206 11/3/2026
3.24.1231 34 11/2/2026
3.24.1221 1,544 10/27/2026
3.23.1201 3,567 10/25/2026
3.22.1171 430 10/25/2026
3.21.1151 69 10/25/2026
3.20.1121 58 10/25/2026
3.19.1091 60 10/24/2026
3.18.1061 80 10/20/2026
Loading failed