---
title: "PsdProcessor.ShapeCallback Property "
canonical: https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Templates_PsdProcessor_ShapeCallback.htm
product: "Graphics Mill"
---

# PsdProcessor.ShapeCallback Property 
 
Gets or sets the callback function that processes shape layers. The function should accept an alias for the calling object and a [PsdShapeFrame](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_Psd_PsdShapeFrame.htm.md) and return a [ShapeData](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Templates_ShapeData.htm.md). It is convenient to use lambda expressions as demonstrated below.
 
**Namespace:** [Aurigma.GraphicsMill.Templates](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill_Templates.htm.md)
 **Assembly:** Aurigma.GraphicsMill.Templates (in Aurigma.GraphicsMill.Templates.dll)
 
## Syntax
  
```csharp
public Func<PsdProcessor, PsdShapeFrame, ShapeData> ShapeCallback { get; set; }
```
 
## Examples
  
```csharp
var psdProcessor = new PsdProcessor();

psdProcessor.ShapeCallback = (processor, shapeFrame) =>
{
    var shapeData = processor.ProcessShape(shapeFrame);
    shapeData.Brush = new SolidBrush(RgbColor.DarkRed);

    return shapeData;
};

psdProcessor.Render(@"Images\BusinessCard.psd", @"Images\Output\RedShapes.pdf");
```
   
## See Also

### Reference

- [PsdProcessor Class](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Templates_PsdProcessor.htm.md)
- [Aurigma.GraphicsMill.Templates Namespace](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill_Templates.htm.md)
