LclrResource

LclrResource class

Class LclrResource. This resource contains information about color of layer in layers’ list is PS. It’s only

public class LclrResource : LayerResource

Constructors

Name Description
LclrResource() Initializes a new instance of the LclrResource class.
LclrResource(byte[]) Initializes a new instance of the LclrResource class.
LclrResource(SheetColorHighlightEnum) Initializes a new instance of the LclrResource class.

Properties

Name Description
Color { get; set; } Gets or sets the color of layer.
override Key { get; } Gets the layer resource key.
override Length { get; } Gets the layer resource length in bytes.
override PsdVersion { get; } Gets the psd version.
override Signature { get; } Gets the signature.

Methods

Name Description
override Save(StreamContainer, int) Saves the resource to the specified stream container.
override ToString() Returns a String that represents this instance.

Fields

Name Description
const TypeToolKey The type tool info key.

Examples

The following example demonstrates how you can change Sheet Color Highlight In Aspose.PSD (Sheet color setting)

[C#]

string sourceFilePath = "AllLclrResourceColors.psd";
string outputFilePath = "AllLclrResourceColorsReversed.psd";

// In the file colors of layers' highlighting are in this order
SheetColorHighlightEnum[] sheetColorsArr = new SheetColorHighlightEnum[] {
    SheetColorHighlightEnum.Red,
    SheetColorHighlightEnum.Orange,
    SheetColorHighlightEnum.Yellow,
    SheetColorHighlightEnum.Green,
    SheetColorHighlightEnum.Blue,
    SheetColorHighlightEnum.Violet,
    SheetColorHighlightEnum.Gray,
    SheetColorHighlightEnum.NoColor
};

// Layer Sheet Color is used to visually highlight layers. 
// For example you can update some layers in PSD and then highlight by color the layer which you want to attract attention.
using (PsdImage img = (PsdImage)Image.Load(sourceFilePath))
{
    CheckSheetColorsAndRerverse(sheetColorsArr, img);
    img.Save(outputFilePath, new PsdOptions());
}

using (PsdImage img = (PsdImage)Image.Load(outputFilePath))
{
    // Colors should be reversed
    Array.Reverse(sheetColorsArr);
    CheckSheetColorsAndRerverse(sheetColorsArr, img);
}

void CheckSheetColorsAndRerverse(SheetColorHighlightEnum[] sheetColors, PsdImage img)
{
    int layersCount = img.Layers.Length;
    for (int layerIndex = 0; layerIndex < layersCount; layerIndex++)
    {
        Layer layer = img.Layers[layerIndex];
        LayerResource[] resources = layer.Resources;
        foreach (LayerResource layerResource in resources)
        {
            // The lcrl resource always presents in psd file resource list.
            LclrResource resource = layerResource as LclrResource;
            if (resource != null)
            {
                if (resource.Color != sheetColors[layerIndex])
                {
                    throw new Exception("Sheet Color has been read wrong");
                }

                // Reverse of style sheet colors. Set up of Layer color highlight.
                resource.Color = sheetColors[layersCount - layerIndex - 1];
                break;
            }
        }
    }
}

See Also