Class LclrResource

LclrResource class

Класс LclrResource. Этот ресурс содержит информацию о цвете слоя в списке слоев PS. Это только

public class LclrResource : LayerResource

Конструкторы

ИмяОписание
LclrResource()Инициализирует новый экземплярLclrResource класс.
LclrResource(byte[])Инициализирует новый экземплярLclrResource класс.
LclrResource(SheetColorHighlightEnum)Инициализирует новый экземплярLclrResource класс.

Характеристики

ИмяОписание
Color { get; set; }Получает или задает цвет слоя.
override Key { get; }Получает ключ ресурса слоя.
override Length { get; }Получает длину ресурса слоя в байтах.
override PsdVersion { get; }Получает версию psd.
override Signature { get; }Получает подпись.

Методы

ИмяОписание
override Save(StreamContainer, int)Сохраняет ресурс в указанный контейнер потока.
override ToString()ВозвращаетString который представляет этот экземпляр.

Поля

ИмяОписание
const TypeToolKeyИнформационный ключ типа инструмента.

Примеры

В следующем примере показано, как можно изменить выделение цветом листа в Aspose.PSD (настройка цвета листа).

[C#]

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

// В файле цвета выделения слоев идут в таком порядке
SheetColorHighlightEnum[] sheetColorsArr = new SheetColorHighlightEnum[] {
    SheetColorHighlightEnum.Red,
    SheetColorHighlightEnum.Orange,
    SheetColorHighlightEnum.Yellow,
    SheetColorHighlightEnum.Green,
    SheetColorHighlightEnum.Blue,
    SheetColorHighlightEnum.Violet,
    SheetColorHighlightEnum.Gray,
    SheetColorHighlightEnum.NoColor
};

// Цвет листа слоя используется для визуального выделения слоев. 
// Например, вы можете обновить некоторые слои в PSD, а затем выделить цветом слой, который вы хотите привлечь внимание.
using (PsdImage img = (PsdImage)Image.Load(sourceFilePath))
{
    CheckSheetColorsAndRerverse(sheetColorsArr, img);
    img.Save(outputFilePath, new PsdOptions());
}

using (PsdImage img = (PsdImage)Image.Load(outputFilePath))
{
    // Цвета должны быть инвертированы
    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)
        {
            // Ресурс lcrl всегда присутствует в списке ресурсов файла psd.
            LclrResource resource = layerResource as LclrResource;
            if (resource != null)
            {
                if (resource.Color != sheetColors[layerIndex])
                {
                    throw new Exception("Sheet Color has been read wrong");
                }

                // Инверсия цветов таблицы стилей. Настройка выделения цветом слоя.
                resource.Color = sheetColors[layersCount - layerIndex - 1];
                break;
            }
        }
    }
}

Смотрите также