DS.Documents.Imaging.Skia
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.
Install
| Product | Versions |
|---|---|
| .NET Standard | |
| Other |
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
- DsImaging Demos
- JavaScript Image Viewer Demos
- Getting Started
- License Information
- Licensing FAQ
- How to Get Trial Keys
- Online Documentation
- Offline Documentation (PDF)
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
tar(built into Windows 10 and later and macOS) orunzip(Linux) extracts the SBOM from the package - the.nupkgas downloaded from nuget.org, or from the NuGet cache (~/.nuget/packages/ds.documents.imaging.skia/<version>/).sign-sbom --export-keysaves the signing certificate embedded in the SBOM topublic.key.cdx-verifychecks the signature.Signature is valid!means the SBOM has not been changed since it was signed with that certificate.openssl x509shows 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 for PDF .NET
- Document Solutions for PDF JS
- Document Solutions for Word .NET
- Document Solutions for Imaging .NET
- Document Solutions for Excel .NET
- Document Solutions for Excel Java
Document Solutions JavaScript Viewers
Changes from Previous Version
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.