Class LclrResource

LclrResource class

Class LclrResource. このリソースには、レイヤー リストのレイヤーの色に関する情報が含まれています。 only です

public class LclrResource : LayerResource

コンストラクター

名前説明
LclrResource()の新しいインスタンスを初期化しますLclrResourceclass.
LclrResource(byte[])の新しいインスタンスを初期化しますLclrResourceclass.
LclrResource(SheetColorHighlightEnum)の新しいインスタンスを初期化しますLclrResourceclass.

プロパティ

名前説明
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
};

// Layer Sheet Color は、レイヤを視覚的に強調するために使用されます。 
// たとえば、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;
            }
        }
    }
}

関連項目