From olve-packages
Reference for Olve.OpenRaster — read-only access to OpenRaster (.ora) layered image files, including layer/group metadata, composite operations, and custom layer parsing via ILayerParser<T>. Use when writing or reading code that works with .ora files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/olve-packages:olve-openrasterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read-only access to [OpenRaster](https://www.openraster.org/) (`.ora`) layered image files. Source: `Olve.Utilities/src/Olve.OpenRaster/`.
Read-only access to OpenRaster (.ora) layered image files. Source: Olve.Utilities/src/Olve.OpenRaster/.
Reference docs: README | Models | Operations
API docs: https://olivervea.github.io/Olve.Utilities/api/Olve.OpenRaster.html
var operation = new ReadOpenRasterFile();
var request = new ReadOpenRasterFile.Request(filePath);
var result = operation.Execute(request);
if (result.TryPickProblems(out var problems, out var file))
{
return problems.Prepend("Failed to read .ora file");
}
// file.Version, file.Width, file.Height, file.Layers, file.Groups
foreach (var layer in file.Layers)
{
// layer.Name, layer.Source, layer.Opacity, layer.Visible
// layer.X, layer.Y, layer.CompositeOperation, layer.Groups
}
public class PngLayerParser : ILayerParser<Png>
{
public Result<Png> ParseLayer(Stream stream)
{
var ms = new MemoryStream();
stream.CopyTo(ms);
ms.Position = 0;
return Png.Open(ms);
}
}
var parser = new PngLayerParser();
var request = new ReadLayerAs<Png>.Request(filePath, "data/layer0.png", parser);
var result = new ReadLayerAs<Png>().Execute(request);
var result = CompositeOperation.FromKey("svg:multiply");
if (result.TryPickValue(out var op, out _))
{
// op.BlendingFunction == BlendingFunction.Multiply
// op.CompositingOperator == CompositingOperator.SourceOver
}
Result<T> from Olve.Results -- never throws.ILayerParser<T> with your preferred image library..ora files are ZIP archives containing stack.xml (metadata) and layer image files.Groups and groups track their child Layers (bidirectional).Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub olivervea/olve.utilities --plugin olve-packages