Namespace SkiaSharp.Extended
Classes
- SKBlurHash
Provides methods to encode and decode BlurHash strings, a compact representation of image placeholders.
- SKChainedTileCacheStore
Tries multiple cache stores in order for reads. Writes go to all writable stores. Use for layered caching (e.g. app-package read-only store + disk cache).
- SKCompositeTileFetcher
Tries multiple fetchers in order, returning the first non-null result. Use for hybrid scenarios (e.g. app package first, HTTP fallback).
- SKDiskTileCacheStore
Persistent tile cache backed by the local filesystem. Uses URL-derived hash keys, bucketed directories, and configurable expiry.
- SKFileTileFetcher
Reads tiles from the local filesystem. No caching — the file IS the source.
- SKGeometry
Provides geometry utility methods for creating paths, calculating polygon properties, and interpolating between paths.
- SKGeometryExtensions
Provides extension methods on SKCanvas for drawing geometric shapes centered at a given point.
- SKHttpTileFetcher
Fetches tiles over HTTP. Pure network access — no caching.
- SKImagePyramidController
Orchestrates the image pyramid rendering pipeline: viewport management, tile scheduling, cache management, and rendering.
- SKImagePyramidDziCollectionSource
Represents a Deep Zoom Collection (DZC) — a composite tiled pyramid of multiple images. Parses the DZC XML descriptor and provides access to sub-images and composite tile math.
- SKImagePyramidDziCollectionSubImage
Represents a single sub-image within a DZC collection. Maps to Silverlight's MultiScaleSubImage.
- SKImagePyramidDziSource
Represents a Deep Zoom Image (DZI) tile source. Parses the DZI XML descriptor and provides tile pyramid math for computing tile URLs and dimensions.
- SKImagePyramidIiifSource
An ISKImagePyramidSource backed by an IIIF Image API v2/v3 info.json. Parses the IIIF descriptor and maps IIIF scale factors to pyramid levels, where level 0 = lowest resolution (largest scale factor) and level MaxLevel = full resolution.
- SKImagePyramidMemoryTileCache
LRU cache for decoded tile images. Evicted tiles are deferred for disposal to avoid race conditions with the renderer. Call FlushEvicted() at the start of each render frame.
- SKImagePyramidRenderer
SkiaSharp implementation of ISKImagePyramidRenderer. Draws Deep Zoom tiles onto an SKCanvas.
- SKImagePyramidSubImage
Represents a single sub-image within a DZC collection, with its position in the mosaic. Mirrors Silverlight's MultiScaleSubImage with inverted viewport coordinates.
- SKImagePyramidTile
An opaque tile that holds the decoded image for rendering and optionally the original encoded bytes for storage.
- SKImagePyramidTileData
Encoded tile data that flows through the fetch/cache pipeline. Wraps the raw encoded bytes (JPEG, PNG, etc.) with optional metadata.
- SKImagePyramidTileFailedEventArgs
Event args for when a tile fails to load.
- SKImagePyramidTileLayout
Computes tile geometry for the ImagePyramid pipeline: which tiles are visible, what fallback tiles exist, and where tiles should be drawn on screen. Works with any ISKImagePyramidSource including DZI and IIIF sources.
- SKImagePyramidViewport
Manages the Deep Zoom viewport — the logical window into the image. Handles coordinate conversions between element (screen), logical (0-1 normalized), and image pixel spaces. Mirrors Silverlight's MultiScaleImage viewport behavior.
- SKNullTileCacheStore
A no-op cache store that never stores or returns anything. Use for testing or when persistent caching is disabled.
- SKPathInterpolation
Interpolates between two SKPath objects by converting them to normalized point arrays and morphing between them.
- SKPixelComparer
Provides methods for pixel-by-pixel comparison of images. This class is thread-safe as all methods are stateless static operations.
- SKPixelComparerOptions
Options for configuring pixel-by-pixel image comparison behavior.
- SKPixelComparisonResult
Holds the results of a pixel-by-pixel image comparison.
- SKTieredTileProvider
Composes a fetcher and optional persistent cache into a tile provider. Flow: persistent cache → origin fetch → persist → decode → return.
- TileFailureTracker
Tracks tile fetch failures with exponential backoff. Replaces permanent blacklisting — transient failures are retried after increasing delays, while tiles that exceed the retry limit are treated as permanent failures until manually reset.
Structs
- Point<T>
A lightweight 2-D point. Replaces the
(double X, double Y)tuples that previously appeared in viewport and sub-image coordinate-conversion methods of the ImagePyramid pipeline.
- Rect<T>
A lightweight, axis-aligned rectangle defined by position and size. Replaces the former
SKImagePyramidRectI(int) andSKImagePyramidRectF(float) domain-specific types and the(double X, double Y, double Width, double Height)tuples that previously appeared throughout the ImagePyramid pipeline.
- SKImagePyramidDisplayRect
Represents a display rectangle in a sparse Deep Zoom Image. Defines a region of available pixels and the pyramid levels at which it is visible.
- SKImagePyramidTileId
Identifies a single tile in the pyramid.
- SKImagePyramidTileRequest
A tile to be fetched, with a priority value (lower = higher priority).
- SKImagePyramidViewportState
Immutable snapshot of viewport position and zoom.
Interfaces
- ISKImagePyramidRenderer
Renders individual Deep Zoom tiles onto a drawing surface. Implement this interface to provide a custom rendering backend.
- ISKImagePyramidSource
Describes an image pyramid source — provides tile pyramid math for computing tile URLs and dimensions. Implement this to support new image formats (DZI, IIIF, Zoomify).
- ISKImagePyramidTileCache
The internal sync render buffer used by SKImagePyramidController. Stores hot decoded tiles for the render loop.
- ISKImagePyramidTileProvider
Returns decoded tiles to the controller. How the tile is obtained (cache, network, filesystem) is an implementation detail.
- ISKTileCacheStore
Platform-agnostic persistent tile storage keyed by string. Implementations provide disk, browser, or database-backed stores.
- ISKTileFetcher
Fetches raw encoded tile data from an origin source. No caching logic — pure network, filesystem, or resource access.