Table of Contents

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) and SKImagePyramidRectF (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.