RaiImage 4.5.5
dotnet add package RaiImage --version 4.5.5
NuGet\Install-Package RaiImage -Version 4.5.5
<PackageReference Include="RaiImage" Version="4.5.5" />
<PackageVersion Include="RaiImage" Version="4.5.5" />
<PackageReference Include="RaiImage" />
paket add RaiImage --version 4.5.5
#r "nuget: RaiImage, 4.5.5"
#:package RaiImage@4.5.5
#addin nuget:?package=RaiImage&version=4.5.5
#tool nuget:?package=RaiImage&version=4.5.5
RaiImage
4.5.5
Coordinated 4.5.5 release; public behavior is aligned with the synchronized platform.
Release notes: RaiImage_RELEASE_NOTES_4.5.5.md.
Structured filename compatibility
CR054 normalizes a trailing numeric token run such as
Customer-Order-Sheet-26-10.jpg into base CustomerOrderSheet, image number 10,
and Structured filename CustomerOrderSheet_010.jpg. Separated uppercase words
are PascalCased: Order_SHEET_001.jpg becomes OrderSheet_001.jpg.
Structured numbers now use D3 minimum width; Legacy keeps D2. Existing two-digit
names still parse, but their recomposed Structured path changes. No stored files
are renamed automatically. Migrate existing paths and references together before
reimporting into an older tree. Values above 999 retain every digit; D3 does not
promise lexicographic ordering across the next width boundary. Numbered diagram siblings and ItemTreeTextFile also use D3 so source, manifest,
and SVG names stay aligned. Include these numbered paths in migration.
4.5.4
Coordinated 4.5.4 release; public behavior is aligned with the synchronized platform.
Release notes: RaiImage_RELEASE_NOTES_4.5.4.md.
4.5.3
Coordinated 4.5.3 release; public behavior is aligned with the synchronized platform.
Release notes: RaiImage_RELEASE_NOTES_4.5.3.md.
4.5.2
Coordinated 4.5.2 release; public behavior is aligned with the synchronized platform.
Release notes: RaiImage_RELEASE_NOTES_4.5.2.md.
4.5.0
Coordinated 4.5.0 dependency alignment; image behavior is unchanged.
Release notes: RaiImage_RELEASE_NOTES_4.5.0.md.
4.4.8
Coordinated 4.4.8 dependency alignment; image behavior is unchanged.
Release notes: RaiImage_RELEASE_NOTES_4.4.8.md.
RaiImage change requests and release notes are centralized in the RAIkeep doc/ directory under RaiImage_... filenames; they are not stored separately in this child repository.
Classes to manage image files in directory trees across local and cloud-backed folders on Windows, macOS, and Linux.
4.4.6
Adds selectable EXIF reads through ImageMagick and structured ExifMetadata: date/offset pairs become DateTimeOffset, related fields are grouped, and exact rational values are retained. ImageTree naming conventions remain unchanged.
Release notes: RaiImage_RELEASE_NOTES_4.4.6.md.
4.4.5
- Participates unchanged in the synchronized nine-package CR047 release.
- Fallback dependencies align to
OsLibCore 4.4.5andRaiUtils 4.4.5. - Current release notes: RaiImage_RELEASE_NOTES_4.4.5.md
4.4.4
- Participates unchanged in the synchronized nine-package CR044 release.
- Fallback dependencies align to
OsLibCore 4.4.4andRaiUtils 4.4.4. - Current release notes: RaiImage_RELEASE_NOTES_4.4.4.md
4.4.2
- Participates unchanged in the synchronized eight-package CR040/CR041 release.
- Fallback dependencies align to
OsLibCore 4.4.2andRaiUtils 4.4.2. - Current release notes: RaiImage_RELEASE_NOTES_4.4.2.md
4.4.1
- Participates unchanged in the synchronized eight-package RAIkeep v4.4.1 CR037 release.
- Fallback dependencies align to
OsLibCore 4.4.1andRaiUtils 4.4.1. - Current release notes: RaiImage_RELEASE_NOTES_4.4.1.md
4.3.2
- Participates unchanged in the coordinated seven-package RAIkeep v4.3.2 CR027 release.
- Fallback dependencies align to
OsLibCore 4.3.2andRaiUtils 4.3.2. - Current release notes: RaiImage_RELEASE_NOTES_4.3.2.md
4.3.1
- Participates unchanged in the coordinated seven-package RAIkeep v4.3.1 CR026 release.
- Fallback dependencies align to
OsLibCore 4.3.1andRaiUtils 4.3.1. - Current release notes: RaiImage_RELEASE_NOTES_4.3.1.md
4.3.0
- Adds optional
ItemTreeTextFile.ItemNumberwith canonicalItemId[_NN][_NameExt].extcomposition while keeping buckets derived only fromItemId. - Adds typed PlantUML artifact rendering that keeps
.puml,_config.puml, and.svgsiblings aligned on one base ItemId, optional number, and NameExt. - Supports CR025's
_UCD,_RFD/_OD,_CD,_AD, and_SDdiagram artifact families without treating their archetype NameExt as part of ItemId. - Fallback dependencies align to
OsLibCore 4.3.0andRaiUtils 4.3.0. - Current release notes: RaiImage_RELEASE_NOTES_4.3.0.md
4.2.11 (superseded before publication)
- This prepared line was not published; its changes are carried by v4.3.0.
- Fallback dependencies align to
OsLibCore 4.2.11andRaiUtils 4.2.11. - Current release notes: RaiImage_RELEASE_NOTES_4.2.11.md
4.2.10
- Participates unchanged in the coordinated seven-package RAIkeep 4.2.10 release.
- Fallback dependencies align to
OsLibCore 4.2.10andRaiUtils 4.2.10. - Current release notes: RaiImage_RELEASE_NOTES_4.2.10.md
4.2.9
- Implements accepted incident corrective action CR022 for JPEG transformation.
ImageMagick.JpegTrankeeps an established image pathname continuously present: the external tool uses isolatedTmpFileinput/output and only validated result bytes are written back in place.- Failure before the in-place write leaves the original image unchanged; no delete-and-move rollback remains.
- Fallback dependencies align to
OsLibCore 4.2.9andRaiUtils 4.2.9. - Current release notes: RaiImage_RELEASE_NOTES_4.2.9.md
- Mandatory storage contract: Cloud-Storage-In-Place-Invariant.md
4.2.8
- Aligns RaiImage with the coordinated seven-package RAIkeep 4.2.8 release implementing accepted CR021.
- Public image and ItemTree behavior remains unchanged from 4.2.7.
- Current release notes: RaiImage_RELEASE_NOTES_4.2.8.md
4.2.7
- Implements accepted CR020 with
ItemTreePath.SelectFiles()for exact-ItemId selection across images,.puml,_config.puml, and.raidfiles. - Adds destination-oriented aggregate movement through
destinationItemPath.mv(sourceItemPath), including rename, subscriber relocation, path-convention migration, collision preflight, rollback, and empty-bucket pruning. - Adds
PathConventionType.Flatand renames the truthful non-image tree type toItemTreeTextFile. - Replaces the procedural
ImageTreeFile.From...construction surface with constructors acceptingItemTreePathplus fluentSelectFirstExistingFile(...)resolution. - Current release notes: RaiImage_RELEASE_NOTES_4.2.7.md
4.2.6
- Implements accepted CR019's package placement by consuming all word-case behavior from RaiUtils.
- Retains deprecated
RaiImage.WordCaseand ordinary staticRaiImage.StringHelpercompatibility facades for pre-4.2.6 compiled callers; no independent implementation remains here. - Recompiled callers should import
RaiUtilsforWordCase,WordSplit,CamelSplit,ToTitle, and the new Unicode-safeWordSeamsAPI. - Aligns fallback dependencies on
OsLibCore 4.2.6andRaiUtils 4.2.6. - Current release notes: RaiImage_RELEASE_NOTES_4.2.6.md
4.2.5
- Aligns RaiImage with the coordinated seven-package RAIkeep 4.2.5 release implementing accepted CR017.
- Aligns fallback dependencies on
OsLibCore 4.2.5andRaiUtils 4.2.5; image behavior is unchanged from 4.2.4. - Current release notes: RaiImage_RELEASE_NOTES_4.2.5.md
4.2.4
- Implements accepted CR016 Unicode normalization for ImageTree-owned subscriber names, item identifiers, templates, filenames, and typed text artifacts.
- Normalizes logical names to NFC before deriving directories or writing files while preserving caller-supplied ImageTree root paths.
- Derives 3x3, 8x2, and canonical-name buckets by Unicode text elements so combining sequences, surrogate pairs, and emoji clusters are not split.
- Resolves legacy NFC, NFD, and mixed-normalization trees segment by segment through the OsLib
RaiPath/RaiFileboundary. - Rejects ambiguous canonically equivalent directory or source-file matches with
RaiImageIOException. - Adds SVG to the default source lookup extensions.
- Aligns fallback dependencies on
OsLibCore 4.2.4andRaiUtils 4.2.4. - 4.2.4 release notes: RaiImage_RELEASE_NOTES_4.2.4.md
4.2.3
- Participates unchanged in the coordinated CR015 package line.
- Implements CR010's truthful
ImageTreeTextFileplacement beside rendered ImageTree images and preserves RaiDiagram's supported PlantUML rendering boundary. - Adds resolved
_config.pumlpersistence usingNameExt = "config", typed source/config handles, and PlantUML-configinvocation. - Aligns fallback dependencies on
OsLibCore 4.2.3andRaiUtils 4.2.3. - Adds
RaiImageIOExceptionandRaiImageNotFoundExceptionfor image-domain failures. - Missing lookup directories throw
RaiPathNotFoundException; missing images in an existing location throwRaiImageNotFoundException. - Missing ImageMagick or PlantUML executables throw
ToolNotFoundException. - CR014 routes ImageMagick, PlantUML, OptiPNG, and JPEGTran execution through typed RaiImage wrappers; optimizer paths are passed as discrete process arguments.
- Image files accept
IAsyncEnumerable<byte[]>ingestion through the OsLib file boundary. - Refreshes the live hierarchy diagram so it no longer advertises the removed
CamelCasetype. ImageFile.EasyFileName(...)now converts separated and compact trailing digits intoImageNumberwhile keeping pure numeric names as item ids.WordCasenow preserves all-uppercase tokens in PascalCase output so names such asSD-State-Sony-149normalize as expected.- The structured-name flow now stays aligned with the
iorgCLI when it stages source images intoImageTreeFilelayouts. - Keeps the current packaged cloud-provider claim of
OneDrive,GoogleDrive,ICloudDrive, andDropbox. - This README is configured to ship inside the RaiImage NuGet package.
cloud storage compatibility
RaiImage is designed to work with OsLib cloud-root discovery and the current packaged support claim covers:
- Dropbox
- OneDrive
- GoogleDrive
- ICloudDrive
For cloud-root configuration and environment/setup details, see the OsLib cloud storage discovery guide and keep the same RAIkeep.json5 cloud-root contract across packages.
namespace
RaiImage
classes
StringHelper: deprecated binary compatibility facade for pre-4.2.6 static callers.
- Canonical extension methods now live in
RaiUtils.StringHelper. - The RaiImage facade methods are intentionally ordinary static methods, preventing duplicate extension discovery.
WordCase: deprecated binary compatibility facade over RaiUtils.WordCase.
- Use
RaiUtils.WordCasefor new and recompiled code.
ColorInfo: ImageMagick-compatible color descriptor with optional named-color lookup.
- ColorInfo:
Get,NamedColors,Code,Name,Count,Color
DyeDelta: snapshot of hue/brightness/saturation deltas between two colors.
- DyeDelta: constructor-based delta capture for
Phi,DeltaB, andDeltaS
Dye: color-wheel and brightness/saturation delta calculator.
- Dye:
Phi,DeltaB,DeltaSa,DeltaSb,DeltaS
Extensions and Size: image-size parser and size value helpers.
- Extensions:
Parse - Size:
ToString,nosize,noSize,HSEmidsize,HSEfullsize
ImageNamingConvention and INamingConvention: file-name convention model for parsing and composition.
- ImageNamingConvention:
Legacy,ItemTemplate,Structured - INamingConvention:
NamingConvention,ApplyNamingConvention
ImageFile: image filename parser/composer on top of RaiFile.
- ImageFile:
Sku,Color,ImageNumber,NameExt,TileTemplate,TileNumber,NameWithExtension,FullName,ShortName - ImageFile:
ApplyNamingConvention,FromFile,BlankToCamelCase,EasyFileName,SetImageNumber,ExtendToFirstExistingFile
ItemTreePath: root path plus tree split convention for item-based directory partitioning.
- ItemTreePath:
Convention,RootPath,ItemId,Topdir,Subdir,TopdirRoot,SubdirRoot,Path,FullPath - ItemTreePath:
ConventionSplit,ApplyPathConvention,SelectFiles, destination-orientedmv,PruneEmptyDirectories,ToString
ImageTreeFile: ImageFile variant with tree-based path partitioning.
- ImageTreeFile:
Convention,Topdir,Subdir,TopdirRoot,SubdirRoot - ImageTreeFile: ItemTreePath-aware constructors,
SelectFirstExistingFile,ApplyPathConvention,mkdir,CopyTo,MoveToTree,rmdir,RenderPlantUml - Split behavior is driven by
PathConventionType;Subdiris cumulative, for example3x3 => 123/123456and8x2 => 12345678/1234567890. See PATH_CONVENTION_SPLITTING.md.
ItemTreeTextFile: truthful text-file placement in an ItemTree bucket.
- ItemTreeTextFile:
SubscriberRoot,ItemPath,ItemId,NameExt,Convention,SubdirRoot,CreateSibling - It derives from OsLib
TextFile, notImageFile, while sharing the same subscriber root, item id,ItemTreePath, andPathConventionTypeplacement as anImageTreeFile. - A resolved PlantUML config uses
NameExt = "config"andExt = "puml", producing names such asScheduleRehearsal_config.pumlbeside.raid, clean.puml, and rendered.svgartifacts.
ImageMagickCommand: typed CLI wrapper around ImageMagick subcommands.
- ImageMagickCommand:
CandidateExecutables,BuildArguments,RunSubcommand,RunSubcommandAsync - OptiPngCommand:
BuildArguments,Optimize,OptimizeAsync - JpegTranCommand:
BuildArguments,Transform,TransformAsync
ImageMagick: facade for ImageMagick and related optimization tools.
- ImageMagick:
ImPath,MagickCommand,OptiPngCommand,JpegTranCommand,JpegTranOptions,Message; every external image-tool call delegates to its typed wrapper - ImageMagick:
Convert,Mogrify,Composite,Identify,EmptyForm,CreateHistogram,Histogram,OptiPng,JpegTran,GetSize,CreateTiles
PlantUmlCommand, PlantUml, and PlantUmlRenderResult: subscriber-aware PlantUML rendering support.
- PlantUmlCommand:
CandidateExecutables,BuildSvgArguments,RenderSvg,RenderSvgAsync, including optional-configinjection - PlantUML
.jarcommands run Java in headless mode for CI, server, and remote-terminal compatibility. - PlantUml:
PlantUmlPath,CommandName,JavaCommand,Message,RenderSvg - PlantUmlRenderResult: compatibility
Source/Configimage-shaped handles, typedSourceArtifact/ConfigArtifacttext files, andSvg; all use the same subscriberItemTreePath
ImageTypes: parsed list of image extensions with a reusable default set.
- ImageTypes:
Default,Array,String
Pane: one WxH viewport value with string and Size conversions.
- Pane:
DefaultPane,String,Size
Panes: pair-like container for zoom/control pane definitions.
- Panes:
Count,String, indexer,ZoomPort,ControlPort
Src: parser for the src= parameter used in HDitem-style image URLs.
- Src:
HasMultipleSkus,Skus,Sku,Subscriber,ImageNumber,Image,ImageWithExtension,String,Param
Tmp: parser for the tmp= template/overlay parameter.
- Tmp:
Template,Overlays,String,Param
IservUrl: URI decomposition into protocol, host, app, page, and path components.
- IservUrl:
Subscriber,Protocol,Host,Port,Path,App,Page,Uri
ServiceUrl: service-oriented specialization layer on top of IservUrl.
- ServiceUrl:
init(Uri, bool)and inheritedIservUrldecomposition members
ImageUrl: HDitem-aware image URL parser with Src and Tmp extraction.
- ImageUrl:
Src,Tmp,Url,isHDitemLink
TwoSizes: comparable pair of small/large sizes with a ranking score.
- TwoSizes:
Rating,SmallRect,LargeRect,CompareTo,Equals
example
var count = ImageTreeFile.MoveToTree(
fromDir: p["from"],
toDirRoot: p["to"],
splitMode: PathConventionType.ItemIdTree8x2,
filter: p["filter"],
remove: p["remove"]);
Console.WriteLine($"{count} files moved.");
nuget
https://www.nuget.org/packages/RaiImage/
diagram
- Class hierarchy: RaiImage-Hierarchy.puml | RaiImage-Type-Overview.svg
- Focused class diagram: RaiImageCD.puml | RaiImageCD.svg
- Supported operations use cases: RaiImage-Operations-UseCases.puml | RaiImageOperationsUseCases.svg
- Background removal activity: RaiImage-BackgroundRemoval-Activity.puml | RaiImageBackgroundRemovalActivity.svg
- Tiling activity: RaiImage-Tiling-Activity.puml | RaiImageTilingActivity.svg
- Optimization and recovery activity: RaiImage-Optimization-Activity.puml | RaiImageOptimizationActivity.svg
- CLI render (if PlantUML is installed):
plantuml RaiImage-Hierarchy.puml RaiImageCD.puml RaiImage-Operations-UseCases.puml RaiImage-BackgroundRemoval-Activity.puml RaiImage-Tiling-Activity.puml RaiImage-Optimization-Activity.puml
detailed api
- Path-convention splitting note: PATH_CONVENTION_SPLITTING.md
- Foldable class and method-level documentation: API.md
migration and release docs
- Migration guide: MIGRATION_3.2.0.md
- Architecture alignment: ARCHITECTURE-ALIGNMENT.md
- Testing guide: TESTING.md
- Latest release notes: RaiImage_RELEASE_NOTES_4.5.5.md
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Newtonsoft.Json (>= 13.0.4)
- OsLibCore (>= 4.5.5)
- RaiUtils (>= 4.5.5)
- System.Drawing.Common (>= 10.0.5)
- System.IO.FileSystem.AccessControl (>= 5.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on RaiImage:
| Package | Downloads |
|---|---|
|
RaiDiagram
Agent-readable semantic diagrams, model reconciliation, and PlantUML rendering for RAIkeep. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.5.5 | 15 | 10/7/2026 |
| 4.5.4 | 92 | 10/3/2026 |
| 4.5.3 | 88 | 10/3/2026 |
| 4.5.2 | 93 | 10/3/2026 |
| 4.5.0 | 90 | 10/3/2026 |
| 4.4.6 | 93 | 10/2/2026 |
| 4.4.5 | 121 | 9/30/2026 |
| 4.4.4 | 117 | 9/29/2026 |
| 4.4.3 | 111 | 9/29/2026 |
| 4.4.2 | 111 | 9/27/2026 |
| 4.4.1 | 137 | 9/25/2026 |
| 4.4.0 | 119 | 9/24/2026 |
| 4.3.2 | 146 | 9/14/2026 |
| 4.3.1 | 121 | 9/13/2026 |
| 4.3.0 | 132 | 9/13/2026 |
| 4.2.10 | 138 | 9/10/2026 |
| 4.2.9 | 132 | 9/10/2026 |
| 4.2.8 | 127 | 9/10/2026 |
| 4.2.7 | 143 | 9/9/2026 |
| 4.2.6 | 141 | 9/3/2026 |
CR054: PascalCase numeric-suffix normalization and D3 Structured image generation; numbered diagram siblings also use D3. Existing paths require coordinated migration.