Tiesky.Image2D 1.0.2026.830

dotnet add package Tiesky.Image2D --version 1.0.2026.830
                    
NuGet\Install-Package Tiesky.Image2D -Version 1.0.2026.830
                    
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="Tiesky.Image2D" Version="1.0.2026.830" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tiesky.Image2D" Version="1.0.2026.830" />
                    
Directory.Packages.props
<PackageReference Include="Tiesky.Image2D" />
                    
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 Tiesky.Image2D --version 1.0.2026.830
                    
#r "nuget: Tiesky.Image2D, 1.0.2026.830"
                    
#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 Tiesky.Image2D@1.0.2026.830
                    
#: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=Tiesky.Image2D&version=1.0.2026.830
                    
Install as a Cake Addin
#tool nuget:?package=Tiesky.Image2D&version=1.0.2026.830
                    
Install as a Cake Tool

Tiesky.Image2D

Tiesky.Image2D project logo

Tiesky.Image2D is a focused .NET 8 image transform library for server-side load, EXIF orientation, 90-degree rotation, resize, and PNG/JPEG output.

using Tiesky.Image2D;

IImageTransformation[] operations =
[
    new RotateTransformation(ImageRotation.Clockwise90),
    new ResizeTransformation(new ResizeOptions
    {
        Width = 800,
        Height = 800,
        Mode = ResizeMode.Contain,
        Filter = ResizeFilter.Lanczos3,
    }),
];

byte[] thumbnail = ImageTransformer.Transform(
    sourceBytes,
    operations,
    new JpegEncoderOptions { Quality = 85 });

ImageInfo info = ImageInspector.Identify(sourceBytes);
Console.WriteLine($"{info.MimeType}: {info.Width}x{info.Height}");

Operations execute in list order after automatic EXIF orientation. Encoding is a required, separate final parameter. An empty operation list performs decode/re-encode only. The original TransformOptions API remains available as a compact convenience contract.

Input overloads accept byte[], ReadOnlySpan<byte>, and Stream. Results can be returned as byte[] or an owned MemoryStream, or written directly to a caller-owned Stream or IBufferWriter<byte>. Caller-owned streams remain open; returned streams are positioned at zero. The default input limit is 100 million decoded pixels and 512 MiB of encoded data. Metadata is stripped on output.

Build and test from the solution root:

dotnet build Tiesky.sln -c Release
dotnet run --project tests\Tiesky.Image2D.Tests -c Release
dotnet run --project examples\Tiesky.Image2D.Examples -c Release -- <input-image> [output-directory]
dotnet run --project benchmarks\Tiesky.Image2D.Benchmarks -c Release -- --suite all --warmups 5 --iterations 15 --baseline _Docs\Implementation\BenchmarkResults.html --html _Docs\Implementation\BenchmarkResults.html

The benchmark accepts --suite jpeg,png,bmp,vp8l,vp8,encoders, --iterations, --warmups, --html, and optional --gate parity|png-parity|jpeg-parity|webp-parity|outperform controls. JPEG, VP8L, and VP8 each contain 12 MP decode, predecoded rotation, predecoded resize, output-encode, and six thumbnail rows; PNG contains decode, rotation, encode, and six thumbnail rows. The codec parity gates require their component and transform rows to stay within 1.05x ImageSharp median latency and 1.10x peak private bytes while preserving captured quality and output size. The tracked, self-contained benchmark report contains the complete 47-scenario matrix and embedded raw data. JPEG transform rows use their final Tiesky measurements as a 1.00x self-baseline; separate tables preserve real pre-optimization comparisons, while ImageSharp remains the primary opponent. WebP remains decode-only: its output-encode rows are explicitly VP8L→PNG level 6 and VP8→JPEG quality 85.

The examples cover every ownership model. The LLM usage guide documents transformation parameters, resize semantics, ownership contracts, limits, and complete code examples for assistants working with this library. Implementation notes and extension invariants live in _Docs/Implementation and must be updated with architectural or algorithmic changes.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2026.830 71 8/30/2026