AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
FOSS version of Aspose.PSD for .NET
Translation pending
Developer toolsC#GitHub @aspose-psd-fossOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Aspose.PSD.FOSS is a free open-source .NET library for loading, inspecting, editing a small subset of PSD/PSB metadata, and saving the file back without rendering.
This library is for metadata-safe PSD/PSB inspection and limited structural editing. It is not a rendering engine, a raster editor, or an open-source replacement for the full commercial Aspose.PSD product.
Use Aspose.PSD.FOSS when you need to:
Do not use Aspose.PSD.FOSS when you need to:
Width, Height, ChannelsCount, BitsPerChannel, ColorMode, Aspose.PSD-compatible VersionSize, Bounds, Compression, ImageResources, IsFlattenName, local Bounds Rectangle, Width, Height, Top, Left, Bottom, Right, IsVisible, Opacity, Clipping, BlendModeKeyName, IsVisible, Opacity, BlendModeKey, Clipping, and layer geometry through coordinate propertiesThe package metadata is defined in this repository, but Aspose.PSD.FOSS is not published to NuGet yet.
Build the package locally:
dotnet pack src/Aspose.PSD.FOSS/Aspose.PSD.FOSS.csproj -c Release
The package will be created under src/Aspose.PSD.FOSS/bin/Release/.
To install it through a NuGet:
dotnet add package Aspose.PSD.FOSS
using Aspose.PSD;
using Aspose.PSD.FileFormats.Core.Blending;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.FileFormats.Psd.Layers;
using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine(image.Width);
Console.WriteLine(image.Height);
Console.WriteLine(image.ChannelsCount);
Console.WriteLine(image.BitsPerChannel);
Console.WriteLine(image.ColorMode);
Console.WriteLine(image.Version);
Console.WriteLine(image.Compression);
Console.WriteLine(image.Layers.Length);
Console.WriteLine(image.ImageResources.Length);
foreach (Layer layer in image.Layers)
{
Console.WriteLine(layer.Name);
Console.WriteLine(layer.Bounds);
Console.WriteLine(layer.BlendModeKey);
Console.WriteLine(layer.IsVisible);
Console.WriteLine(layer.Opacity);
}
image.Layers[0].Name = "Updated layer";
image.Layers[0].IsVisible = false;
image.Layers[0].Left = 10;
image.Layers[0].Top = 20;
image.Layers[0].Right = 110;
image.Layers[0].Bottom = 120;
image.Layers[0].Opacity = 128;
image.Layers[0].BlendModeKey = BlendMode.Multiply;
image.Save("output.psd");
Choose Aspose.PSD.FOSS if you need a small open-source library for structural inspection and limited non-rendering edits.
Choose the commercial Aspose.PSD product if you need broad Photoshop feature support such as rendering, raster editing, export pipelines, richer resource/tag handling, or wider PSD/PSB compatibility.
Runnable sample projects are available in the repository samples/ folder:
Aspose.PSD.FOSS.Samples.BasicAspose.PSD.FOSS.Samples.LayersAspose.PSD.FOSS.Samples.StructuralEditingAspose.PSD.FOSS.Samples.StreamsAspose.PSD.NuGet.Samples.BasicAspose.PSD.NuGet.Samples.LayersAspose.PSD.NuGet.Samples.StructuralEditingAspose.PSD.NuGet.Samples.StreamsThe Aspose.PSD.FOSS.Samples.* projects reference this FOSS library. The Aspose.PSD.NuGet.Samples.* projects run the same workflows against the official Aspose.PSD NuGet package.
Each FOSS sample must have a fully analogous NuGet sample, and the matching Program.cs files must always remain identical. Keep only the project files different so the same application source can be compiled and exercised against both libraries for the supported migration scenarios.
This parity requirement applies to sample source and covered workflows, not to byte-for-byte identical runtime output. The commercial Aspose.PSD package may report different values or save different bytes for the same input document even when both sample projects successfully run the same scenario.
Sample/workflow matrix:
| FOSS sample | NuGet sample | Main workflow | What it demonstrates |
|---|---|---|---|
Aspose.PSD.FOSS.Samples.Basic | Aspose.PSD.NuGet.Samples.Basic | Document inspection | Aspose.PSD-compatible document metadata and supported resource/layer counts |
Aspose.PSD.FOSS.Samples.Layers | Aspose.PSD.NuGet.Samples.Layers | Layer inspection | Layer metadata, derived geometry, blend mode key, channel information, mask data, and blending ranges |
Aspose.PSD.FOSS.Samples.StructuralEditing | Aspose.PSD.NuGet.Samples.StructuralEditing | Supported metadata editing | Renaming layers, changing visibility, opacity, clipping, blend mode key, and geometry, then saving without rendering |
Aspose.PSD.FOSS.Samples.Streams | Aspose.PSD.NuGet.Samples.Streams | Stream-based round trip | Loading from a stream, saving to a stream, and working with in-memory PSD/PSB data |
Example commands:
dotnet run --project samples/Aspose.PSD.FOSS.Samples.Basic
dotnet run --project samples/Aspose.PSD.FOSS.Samples.Layers
dotnet run --project samples/Aspose.PSD.FOSS.Samples.StructuralEditing
dotnet run --project samples/Aspose.PSD.FOSS.Samples.Streams
dotnet run --project samples/Aspose.PSD.NuGet.Samples.Basic
dotnet run --project samples/Aspose.PSD.NuGet.Samples.Layers
dotnet run --project samples/Aspose.PSD.NuGet.Samples.StructuralEditing
dotnet run --project samples/Aspose.PSD.NuGet.Samples.Streams
If you do not pass an input file, the samples try to use the repository PSD test fixture.
If you do not pass an output file to the stream or structural-editing samples, they save into the repository tmp/ folder by default.
Markdown documentation is available in the repository:
documentation/README.mddocumentation/getting-started.mddocumentation/developer-guide/basic-psd-operations.mddocumentation/limitations.mdName, IsVisible, Opacity, BlendModeKey, Clipping, and layer geometry through coordinate propertiesMIT