Skip to main content
.NETFramework4.6.2.NETStandard2.0

DS.Documents.Imaging.Skia (DsImaging.Skia) is a cross-platform rendering engine for drawing text and graphics. It is based on SkiaSharp and exposes an object model similar to, and interoperable with, classes from DsImaging.

Published
Oct 14, 2026
7d ago
Total Downloads
24.5K
24,466

Install

dotnet add package DS.Documents.Imaging.Skia --version 9.2.2
ProductVersions
.NET Standard
netstandard2.0
Other
.NETFramework4.6.2

README

Document Solutions for Imaging - Skia

This is a cross-platform rendering engine for drawing text and graphics. It is based on SkiaSharp and exposes an object model similar to, and interoperable with, classes from Document Solutions for Imaging (DsImaging, formerly GcImaging).

The main classes in this library are GcSkiaBitmap, GcSkiaImage, and GcSkiaGraphics, and can be used instead of their counterparts from DsImaging.

GcSkiaBitmap represents a bitmap in CPU memory. It works similar to GcBitmap but internally encapsulates an instance of SKBitmap object from SkiaSharp.GcSkiaBitmap can load and save images in JPEG, PNG, and WEBP formats. A GcSkiaBitmap can be converted to a GcBitmap or GcSkiaImage, and vice versa. To draw on a GcSkiaBitmap, call the CreateGraphics() method which returns an instance of the associated GcSkiaGraphics that can be used for drawing.

GcSkiaImage represents an immutable image based on SKImage. It is a lightweight version of GcSkiaBitmap which does not support modifications. A GcSkiaImage can be loaded and saved to the same formats as GcSkiaBitmap. It can also be converted to GcBitmap or GcSkiaBitmap. Both GcSkiaImage and GcSkiaBitmap implement the IImage interface and so can be rendered on an instance of any class derived from GcGraphics.

GcSkiaGraphics is the drawing class derived from GcGraphics. An instance of GcSkiaGraphics can be created directly or from a GcSkiaBitmap. If the GcSkiaGraphics instance was created from a GcSkiaBitmap, it can be disposed when all drawing is done. If the GcSkiaGraphics instance was created directly, ToSkiaImage() or ToGcBitmap() methods can be called on it to get a snapshot of the current drawing.

If drawing text to multiple instances of GcSkiaGraphics make sure to create a single SkiaFontCache object and assign it to the FontCache property of all those instances.

DS.Documents.Imaging.Skia is compatible with .NET 6 or later, .NET Standard 2.x, and .NET Framework 4.6.1 or later.

All features are fully supported on Windows, macOS and Linux.

Resources

Verifying the SBOM

This package carries a CycloneDX software bill of materials (SBOM) for each target framework, at sbom/<tfm>/bom.cdx.json, signed with the MESCIUS inc. code-signing certificate. To verify one, with Node.js and OpenSSL installed (on Windows, OpenSSL comes with Git for Windows):

tar -xf ds.documents.imaging.skia.<version>.nupkg sbom/net462/bom.cdx.json    # Windows, macOS
unzip ds.documents.imaging.skia.<version>.nupkg sbom/net462/bom.cdx.json     # Linux
npx @wynenterprise/[email protected] sbom/net462/bom.cdx.json --export-key public.key
npx -p @cyclonedx/[email protected] cdx-verify -i sbom/net462/bom.cdx.json --public-key public.key
openssl x509 -in public.key -noout -subject -issuer -dates
  1. tar (built into Windows 10 and later and macOS) or unzip (Linux) extracts the SBOM from the package - the .nupkg as downloaded from nuget.org, or from the NuGet cache (~/.nuget/packages/ds.documents.imaging.skia/<version>/).
  2. sign-sbom --export-key saves the signing certificate embedded in the SBOM to public.key.
  3. cdx-verify checks the signature. Signature is valid! means the SBOM has not been changed since it was signed with that certificate.
  4. openssl x509 shows whose certificate it is. The subject should name MESCIUS inc. (O=MESCIUS inc., CN=MESCIUS inc.) and the issuer should be a DigiCert code-signing CA.

Step 3 alone proves only that the SBOM matches the certificate inside it; step 4 ties that certificate to MESCIUS. To also check that it chains to a trusted root, save the issuing DigiCert intermediate and root certificates (DigiCert root and intermediate certificates) as PEM in chain.pem and run openssl verify -CAfile chain.pem public.key. If the certificate has expired since the SBOM was signed, add -attime <seconds>, with the SBOM's metadata.timestamp as seconds since 1970-01-01 UTC.

Document Solutions Products

Document Solutions JavaScript Viewers

Changes from Previous Version

No structural changes between v9.2.1 and v9.2.2.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.Compatibility metadata lists 2 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.