Lyo.Images.Skia
3.0.0
dotnet add package Lyo.Images.Skia --version 3.0.0
NuGet\Install-Package Lyo.Images.Skia -Version 3.0.0
<PackageReference Include="Lyo.Images.Skia" Version="3.0.0" />
<PackageVersion Include="Lyo.Images.Skia" Version="3.0.0" />
<PackageReference Include="Lyo.Images.Skia" />
paket add Lyo.Images.Skia --version 3.0.0
#r "nuget: Lyo.Images.Skia, 3.0.0"
#:package Lyo.Images.Skia@3.0.0
#addin nuget:?package=Lyo.Images.Skia&version=3.0.0
#tool nuget:?package=Lyo.Images.Skia&version=3.0.0
Lyo.Images.Skia
SkiaSharp IImageService for Lyo.Images: resize, crop, rotate, watermark, format conversion, thumbnails, compression, metadata (optional
MetadataExtractor EXIF in the Skia pipeline), palette extraction, and batch processing.
Examples
Resize with Skia
using Lyo.Images;
using Lyo.Images.Models;
using Lyo.Images.Skia;
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection();
services.AddSkiaImageService(o => {
o.DefaultQuality = 90;
o.MaxWidth = 10_000;
o.MaxHeight = 10_000;
});
var imageService = services.BuildServiceProvider().GetRequiredService<IImageService>();
await imageService.ResizeAsync(inputStream, outputStream, 800, 600, ResizeMode.Max, ImageFormat.Jpeg, 90);
Register decoration plus Skia
using Lyo.Images;
using Microsoft.Extensions.DependencyInjection;
services.AddImageSharpImageService(); // registers IImageDecorationService
services.AddSkiaImageService(); // overrides IImageService with Skia
Skia compared with ImageSharp
| Lyo.Images.Skia | Lyo.Images (ImageSharp) | |
|---|---|---|
| Platforms | Favours Linux and mobile. Native Skia assets. | Fully managed. Wider format coverage. |
| EXIF | Extended EXIF through MetadataExtractor where wired. | EXIF through ImageSharp metadata APIs. |
| Decoration | Gets the ImageSharp-backed IImageDecorationService primitives through ImageServiceBase. AddSkiaImageService does not register IImageDecorationService on its own. Call AddImageSharpImageService first if you want that type resolvable separately. |
AddImageSharpImageService also registers IImageDecorationService. |
Types
| Type | Description |
|---|---|
SkiaImageService |
IImageService that decodes and encodes bitmaps with SkiaSharp. |
Extensions |
AddSkiaImageService, AddSkiaImageServiceFromConfiguration. Uses the same ImageServiceOptions / "ImageService" section as ImageSharp. |
Constants.Metrics |
Metric name strings for Skia timing. |
Internal helpers (SkiaExifExtractor, etc.) are not a supported public contract.
Decoration primitives
SkiaImageService gets the ImageSharp-backed IImageDecorationService primitives (OverlayAsync, AddFrameAsync, AddCaptionAsync, AddOuterPaddingAsync, plus the
Pipeline(...) fluent API) through ImageServiceBase. To resolve IImageDecorationService as its own DI registration next to Skia, register ImageSharp first:
Why SkiaSharp
- Renders natively on Linux and mobile.
- Watermark text rendering is reliable.
- Depending on the Skia build, raster formats include JPEG, PNG, WebP, GIF, BMP, ICO.
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Common.Core(direct, lyo)Lyo.Exceptions(direct, lyo)Lyo.Images(direct, lyo)Lyo.Metrics(direct, lyo)Lyo.Result(direct, lyo)MetadataExtractor2.9.3(direct, third-party)Microsoft.Extensions.Configuration.Binder10.0.5(direct, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(direct, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5(direct, microsoft)SkiaSharp3.*(direct, third-party)SkiaSharp.NativeAssets.Linux.NoDependencies3.*(direct, third-party)Lyo.Common.Metadata(transitive, lyo)Microsoft.Bcl.AsyncInterfaces10.0.5(transitive, microsoft, netstandard2.0)SixLabors.Fonts2.1.3(transitive, third-party)SixLabors.ImageSharp3.1.12(transitive, third-party)SixLabors.ImageSharp.Drawing2.1.7(transitive, third-party)System.Memory4.6.3(transitive, microsoft, netstandard2.0)System.Text.Json10.0.5(transitive, microsoft, netstandard2.0)
| Product | Versions 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. |
-
net10.0
- Lyo.Common.Core (>= 3.0.0)
- Lyo.Exceptions (>= 3.0.0)
- Lyo.Images (>= 3.0.0)
- Lyo.Metrics (>= 3.0.0)
- Lyo.Result (>= 3.0.0)
- MetadataExtractor (>= 2.9.3)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux.NoDependencies (>= 3.119.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.