How to Draw and Edit Shapes in PSD Files Using Aspose.PSD for .NET
Drawing and editing shapes programmatically in PSD files unlocks automation for templates, batch artwork, and generative design. Aspose.PSD for .NET makes this direct and reliable.
Real-World Problem
Updating or generating vector graphics in PSDs for hundreds of banners, templates, or creative assets is tedious by hand, but easy in code.
Solution Overview
Use Aspose.PSD for .NET to create, update, or style shape layers—modifying fills, paths, and vector properties programmatically.
Prerequisites
- Visual Studio 2019 or later
- .NET 6.0 or later (or .NET Framework 4.6.2+)
- Aspose.PSD for .NET from NuGet
- Existing PSD file or plan to generate new shapes
PM> Install-Package Aspose.PSD
Step-by-Step Implementation
Step 1: Load or Create a PSD File
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.FileFormats.Psd.Layers;
using Aspose.PSD.FileFormats.Psd.Layers.Shapes;
string inputFile = "./input/sample_with_shape.psd";
string outputFile = "./output/sample_shape_edited.psd";
var loadOptions = new PsdLoadOptions() { LoadEffectsResource = true };
PsdImage psdImage = (PsdImage)Image.Load(inputFile, loadOptions);
Step 2: Locate the Shape Layer
ShapeLayer shapeLayer = null;
foreach (var layer in psdImage.Layers)
{
if (layer is ShapeLayer s)
{
shapeLayer = s;
break;
}
}
if (shapeLayer == null)
{
throw new InvalidOperationException("No shape layer found in PSD.");
}
Step 3: Edit the Shape’s Path and Fill
// Change fill color
shapeLayer.Fill = new FillLayer(new GradientFillSettings());
// Edit the path (add a new bezier knot for example)
var pathShape = new PathShape();
pathShape.SetItems(
new BezierKnotRecord[] {
new BezierKnotRecord() {
Points = new Point[] {
new Point(5, 5),
new Point(25, 45),
new Point(32, 42) } } }
);
shapeLayer.Path.SetItems(new PathShape[] { pathShape });
Step 4: Save the Edited PSD
psdImage.Save(outputFile);
psdImage.Dispose();
Use Cases and Applications
- Generate vector graphics for templates
- Update brand shapes in batch across assets
- Build dynamic artwork for web or print
Common Challenges and Solutions
Complex paths: Use API’s vector tools to script complex shapes.
Visual validation: Always review outputs in Photoshop.
Best Practices
- Use naming conventions to target the right shape
- Keep original PSDs for rollbacks
- Validate output after automation
FAQ
Q: Can I create a new shape layer from scratch?
A: Yes—see API docs for ShapeLayer
creation.
Q: Are gradients and fills supported?
A: Yes—GradientFillSettings
and more are available.
Conclusion
Aspose.PSD for .NET empowers creative teams to automate vector editing and shape layer generation in PSDs. For more, see the Aspose.PSD for .NET API Reference .