Class PlLdResource

PlLdResource class

PSD 파일에 배치된 레이어에 대한 정보를 포함하는 PlLdResource 클래스를 정의합니다. Adobe® Photoshop® 이미지에서 스마트 개체 레이어를 지원하는 데 사용됩니다. Adobe® Photoshop® CS3 에서 SoLdResource로 대체되었습니다.

public class PlLdResource : PlacedResource

속성

이름설명
virtual AntiAliasPolicy { get; set; }PSD 이미지에 배치된 레이어의 앤티 앨리어스 정책을 가져오거나 설정합니다.
Bottom { get; set; }PSD 이미지에서 배치된 레이어의 하단 위치를 가져오거나 설정합니다.
Bounds { get; set; }PSD 파일에 배치된 레이어의 경계를 가져오거나 설정합니다.
HorizontalMeshPoints { get; set; }PSD 파일에 배치된 레이어의 수평 메쉬 포인트를 가져오거나 설정합니다.
HorizontalMeshPointUnit { get; set; }수평 메쉬 포인트의 측정 단위를 가져오거나 설정합니다.
IsCustom { get; set; }이 인스턴스 뒤틀기 스타일이 사용자 지정인지 여부를 나타내는 값을 가져오거나 설정합니다. true인 경우 메쉬 포인트를 포함합니다. false로 설정하면 메쉬 점을 지웁니다.
virtual Items { get; set; }워프 항목을 가져오거나 설정합니다.
override Key { get; }PlLd 리소스 키를 가져옵니다.
Left { get; set; }PSD 파일에서 배치된 레이어의 왼쪽 위치를 가져오거나 설정합니다.
override Length { get; }PlLd 리소스 길이를 바이트 단위로 가져옵니다.
virtual PageNumber { get; set; }PSD 파일에 배치된 레이어의 페이지 번호를 가져오거나 설정합니다.
Perspective { get; set; }PSD 파일에 배치된 레이어의 원근 값을 가져오거나 설정합니다.
PerspectiveOther { get; set; }PSD 파일에 배치된 레이어의 원근 다른 값을 가져오거나 설정합니다.
virtual PlacedLayerType { get; set; }PSD 파일에 배치된 레이어의 유형을 가져오거나 설정합니다.
override PsdVersion { get; }PlLd 리소스에 필요한 최소 psd 버전을 가져옵니다. 0은 제한이 없음을 나타냅니다.
Right { get; set; }PSD 파일에서 배치된 레이어의 올바른 위치를 가져오거나 설정합니다.
override Signature { get; }PlLd 리소스 서명을 가져옵니다.
Top { get; set; }PSD 이미지에서 배치된 레이어의 상단 위치를 가져오거나 설정합니다.
virtual TotalPages { get; set; }PSD 파일에 배치된 레이어의 총 페이지 수를 가져오거나 설정합니다.
virtual TransformMatrix { get; set; }PSD 파일에 배치된 레이어의 변환 매트릭스를 가져오거나 설정합니다.
virtual UniqueId { get; set; }PSD 이미지에 배치된 레이어의 전역 고유 식별자를 가져오거나 설정합니다.
UOrder { get; set; }PSD 파일에 배치된 레이어의 U 순서 값을 가져오거나 설정합니다.
Value { get; set; }PSD 이미지에 배치된 레이어의 워프 값을 가져오거나 설정합니다.
Version { get; }PSD 파일에 배치된 레이어의 버전을 가져옵니다. 일반적으로 3.
VerticalMeshPoints { get; set; }PSD 파일에 배치된 레이어의 수평 메쉬 포인트를 가져오거나 설정합니다.
VerticalMeshPointUnit { get; set; }수직 메쉬 포인트의 측정 단위를 가져오거나 설정합니다.
VOrder { get; set; }PSD 파일에 배치된 레이어의 V 순서 값을 가져오거나 설정합니다.

행동 양식

이름설명
override Save(StreamContainer, int)지정된 스트림 컨테이너에 PlLD 리소스를 저장합니다.
override ToString()반환String 이 instance. 를 나타냅니다.

필드

이름설명
const TypeToolKey유형 도구 정보 키입니다.

다음 코드는 PlLdResource 리소스의 지원을 보여줍니다.

[C#]

void AssertAreEqual(object actual, object expected)
{
    var areEqual = object.Equals(actual, expected);
    if (!areEqual && actual is Array && expected is Array)
    {
        var actualArray = (Array)actual;
        var expectedArray = (Array)actual;
        if (actualArray.Length == expectedArray.Length)
        {
            for (int i = 0; i < actualArray.Length; i++)
            {
                if (!object.Equals(actualArray.GetValue(i), expectedArray.GetValue(i)))
                {
                    break;
                }
            }

            areEqual = true;
        }
    }

    if (!areEqual)
    {
        throw new FormatException(
            string.Format("Actual value {0} are not equal to expected {1}.", actual, expected));
    }
}

var sourceFilePath = "LayeredSmartObjects8bit2.psd";
var outputFilePath = "LayeredSmartObjects8bit2_output.psd";
var expectedValues = new object[]
{
    new object[]
    {
        true,
        "76f05a3b-7523-5e42-a1bb-27f4735bffa0",
        1,
        1,
        0x10,
        PlacedLayerType.Raster,
        new double[8]
        {
            29.937922786050663,
            95.419959734187131,
            126.85445817782261,
            1.0540625423957124,
            172.20861031651307,
            47.634102808208553,
            75.292074924741144,
            142
        },
        0d,
        0d,
        0d,
        0d,
        0d,
        149d,
        310d,
        4,
        4,
        UnitTypes.Pixels,
        new double[16]
        {
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d
        },
        UnitTypes.Pixels,
        new double[16]
        {
            0.0d, 0.0d, 0.0d, 0.0d,
            49.666666666666664d, 49.666666666666664d, 49.666666666666664d, 49.666666666666664d,
            99.333333333333329d, 99.333333333333329d, 99.333333333333329d, 99.333333333333329d,
            149, 149, 149, 149,
        },
    },
    new object[]
    {
        true,
        "cf0477a8-8f92-ac4f-9462-f78e26234851",
        1,
        1,
        0x10,
        PlacedLayerType.Raster,
        new double[8]
        {
            37.900314592235681,
            -0.32118219433001371,
            185.94210608826535,
            57.7076819802063,
            153.32047433609358,
            140.9311755779743,
            5.2786828400639294,
            82.902311403437977,
        },
        0d,
        0d,
        0d,
        0d,
        0d,
        721d,
        1280d,
        4,
        4,
        UnitTypes.Pixels,
        new double[16]
        {
            0.0, 426.66666666666663, 853.33333333333326, 1280,
            0.0, 426.66666666666663, 853.33333333333326, 1280,
            0.0, 426.66666666666663, 853.33333333333326, 1280,
            0.0, 426.66666666666663, 853.33333333333326, 1280,
        },
        UnitTypes.Pixels,
        new double[16]
        {
            0.0, 0.0, 0.0, 0.0,
            240.33333333333331, 240.33333333333331, 240.33333333333331, 240.33333333333331,
            480.66666666666663, 480.66666666666663, 480.66666666666663, 480.66666666666663,
            721, 721, 721, 721,
        },
        0,
        0
    }
};

using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
{
    PlLdResource resource = null;
    int index = 0;
    foreach (Layer imageLayer in image.Layers)
    {
        foreach (var imageResource in imageLayer.Resources)
        {
            resource = imageResource as PlLdResource;
            if (resource != null)
            {
                var expectedValue = (object[])expectedValues[index++];
                AssertAreEqual(expectedValue[0], resource.IsCustom);
                AssertAreEqual(expectedValue[1], resource.UniqueId.ToString());
                AssertAreEqual(expectedValue[2], resource.PageNumber);
                AssertAreEqual(expectedValue[3], resource.TotalPages);
                AssertAreEqual(expectedValue[4], resource.AntiAliasPolicy);
                AssertAreEqual(expectedValue[5], resource.PlacedLayerType);
                AssertAreEqual(8, resource.TransformMatrix.Length);
                AssertAreEqual((double[])expectedValue[6], resource.TransformMatrix);
                AssertAreEqual(expectedValue[7], resource.Value);
                AssertAreEqual(expectedValue[8], resource.Perspective);
                AssertAreEqual(expectedValue[9], resource.PerspectiveOther);
                AssertAreEqual(expectedValue[10], resource.Top);
                AssertAreEqual(expectedValue[11], resource.Left);
                AssertAreEqual(expectedValue[12], resource.Bottom);
                AssertAreEqual(expectedValue[13], resource.Right);
                AssertAreEqual(expectedValue[14], resource.UOrder);
                AssertAreEqual(expectedValue[15], resource.VOrder);
                if (resource.IsCustom)
                {
                    AssertAreEqual(expectedValue[16], resource.HorizontalMeshPointUnit);
                    AssertAreEqual((double[])expectedValue[17], resource.HorizontalMeshPoints);
                    AssertAreEqual(expectedValue[18], resource.VerticalMeshPointUnit);
                    AssertAreEqual((double[])expectedValue[19], resource.VerticalMeshPoints);
                    var temp = resource.VerticalMeshPoints;
                    resource.VerticalMeshPoints = resource.HorizontalMeshPoints;
                    resource.HorizontalMeshPoints = temp;
                }
                
                resource.PageNumber = 2;
                resource.TotalPages = 3;
                resource.AntiAliasPolicy = 30;
                resource.Value = 1.23456789;
                resource.Perspective = 0.123456789;
                resource.PerspectiveOther = 0.987654321;
                resource.Top = -126;
                resource.Left = -215;
                resource.Bottom = 248;
                resource.Right = 145;

                // 일부 매개변수에 주의: Adobe® Photoshop®에서 이미지를 읽을 수 없게 될 수 있습니다.
                ////resource.UOrder = 6;
                ////resource.VOrder = 9;

                // 변경하지 않으면 자유 변형을 사용할 수 없습니다.
                // 또는 밑줄 스마트 객체를 벡터 유형으로 변경
                ////resource.PlacedLayerType = PlacedLayerType.Vector;

                // 이 고유 ID를 가진 유효한 PlLdResource가 있어야 합니다.
                ////resource.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

    AssertAreEqual(true, resource != null);
    image.Save(outputFilePath, new PsdOptions(image));
}

또한보십시오