EncDotNet.S100.Portrayals 0.25.1

dotnet add package EncDotNet.S100.Portrayals --version 0.25.1
                    
NuGet\Install-Package EncDotNet.S100.Portrayals -Version 0.25.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EncDotNet.S100.Portrayals" Version="0.25.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EncDotNet.S100.Portrayals" Version="0.25.1" />
                    
Directory.Packages.props
<PackageReference Include="EncDotNet.S100.Portrayals" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EncDotNet.S100.Portrayals --version 0.25.1
                    
#r "nuget: EncDotNet.S100.Portrayals, 0.25.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EncDotNet.S100.Portrayals@0.25.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EncDotNet.S100.Portrayals&version=0.25.1
                    
Install as a Cake Addin
#tool nuget:?package=EncDotNet.S100.Portrayals&version=0.25.1
                    
Install as a Cake Tool

EncDotNet.S100.Portrayals

EncDotNet.S100.Portrayals parses S-100 portrayal catalogues (S-100 Part 9): the symbols, line styles, area fills, colour profiles, rules, viewing groups and display modes used to draw S-100 data. Reference it when you need to read a portrayal catalogue or its assets directly. The EncDotNet.S100 facade uses it for you through S100PortrayalCatalogue.

Install

dotnet add package EncDotNet.S100.Portrayals

Example: open a catalogue folder

using EncDotNet.S100.Core;
using EncDotNet.S100.Portrayals;

using var provider = await PortrayalCatalogueProvider.OpenAsync(
    FileSystemAssetSource.Create("path/to/PortrayalCatalog"));

PortrayalCatalogue catalogue = provider.Catalogue;
Console.WriteLine($"{catalogue.ProductId} {catalogue.Version}: {catalogue.RuleFiles.Count} rule files");

OpenAsync reads portrayal_catalogue.xml from the source unless you pass another path. The provider disposes the source when you dispose it.

Main entry points

  • PortrayalCatalogueProvider loads a catalogue and fetches the assets it references (rule files, symbols, line styles and others) from an IAssetSource.
  • PortrayalCatalogue is the parsed model: symbols, line styles, area fills, colour profiles, pixmaps, style sheets, rule files, viewing groups, display modes, display planes and context parameters.
  • PortrayalCatalogueReader parses portrayal catalogue XML from a stream or a file path.
  • ColorProfileReader, LineStyleReader and AreaFillReader parse individual portrayal components.
  • ViewingGroup, DisplayMode, DisplayPlane and ContextParameter describe display configuration.
  • PortrayalCatalogueManager manages the portrayal catalogues for several product specifications. SetPath and SetSource set where a product's catalogue comes from.
    • It implements ICatalogueProvider<PortrayalCatalogueProvider>, including GetCatalogueHashAsync(spec). That returns a lowercase hexadecimal SHA-256 over the catalogue XML and the bytes of every asset it declares: rule files, symbols, line styles, area fills, colour profiles, pixmaps and style sheets. Use it as a cache-invalidation key.
    • The hash is computed once per product, when first requested, and cleared by SetPath and SetSource. A failure (null) isn't cached, so the next call tries again.

See also

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (19)

Showing the top 5 NuGet packages that depend on EncDotNet.S100.Portrayals:

Package Downloads
EncDotNet.S100.Datasets.S101

Libraries for manipulating S-100 based nautical charts.

EncDotNet.S100.Renderers.Skia

Headless SkiaSharp rasteriser for the IHO S-100 portrayal pipeline. Renders the backend-neutral scene IR from EncDotNet.S100.Rendering.Scene (VectorScene / PaintOp) to an image with no GUI or map framework: SkiaDisplayListRenderer.RenderOnto, HeadlessVectorRenderer, CoverageHeadlessRenderer, and the multi-layer HeadlessCompositeRenderer. Lets a consumer embed just the renderer + IR without the EncDotNet.S100 facade or Mapsui.

EncDotNet.S100.Datasets.S102

Libraries for manipulating S-100 based nautical charts.

EncDotNet.S100.Datasets.S111

Libraries for manipulating S-100 based nautical charts.

EncDotNet.S100.Renderers.Mapsui

Libraries for manipulating S-100 based nautical charts.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.25.1 404 10/12/2026
0.25.0 412 10/12/2026
0.24.0 445 10/4/2026
0.23.0 433 9/17/2026
0.22.0 514 7/19/2026
0.21.0 529 7/10/2026
0.20.0 510 6/29/2026
0.19.0 508 6/27/2026
0.18.0 502 6/17/2026
0.17.1 485 6/16/2026
0.17.0 486 6/15/2026
0.16.0 491 6/8/2026
0.15.0 220 6/6/2026
0.14.0 220 6/6/2026
0.13.0 198 6/3/2026
0.12.0 197 5/29/2026
0.11.0 199 5/19/2026
0.10.0 198 5/16/2026
0.9.0 187 5/15/2026
0.8.0 200 5/13/2026
Loading failed