Class PlLdResource

PlLdResource class

PSD dosyasındaki yerleştirilmiş bir katman hakkında bilgi içeren PlLdResource sınıfını tanımlar. Adobe® Photoshop® görüntülerinde akıllı nesne katmanlarını desteklemek için kullanılır. Adobe® Photoshop® CS3 ‘de yerini SoLdResource almıştır.

public class PlLdResource : PlacedResource

Özellikleri

İsimTanım
virtual AntiAliasPolicy { get; set; }PSD görüntüsündeki yerleştirilmiş katmanın kenar yumuşatma politikasını alır veya ayarlar.
Bottom { get; set; }PSD görüntüsünde yerleştirilen katmanın alt konumunu alır veya ayarlar.
Bounds { get; set; }PSD dosyasında yerleştirilen katmanın sınırlarını alır veya ayarlar.
HorizontalMeshPoints { get; set; }PSD dosyasındaki yerleştirilmiş katmanın yatay ağ noktalarını alır veya ayarlar.
HorizontalMeshPointUnit { get; set; }Yatay ağ noktalarının ölçü birimini alır veya ayarlar.
IsCustom { get; set; }Bu örnek çarpıtma stilinin özel olup olmadığını gösteren bir değer alır veya ayarlar. Doğruysa, ağ noktaları içerir. false değerine ayarlanırsa ağ noktalarını siler.
virtual Items { get; set; }Çözgü öğelerini alır veya ayarlar.
override Key { get; }PlLd kaynak anahtarını alır.
Left { get; set; }PSD dosyasında yerleştirilen katmanın sol konumunu alır veya ayarlar.
override Length { get; }Bayt cinsinden PlLd kaynak uzunluğunu alır.
virtual PageNumber { get; set; }PSD dosyasına yerleştirilen katmanın sayfa numarasını alır veya ayarlar.
Perspective { get; set; }PSD dosyasına yerleştirilen katmanın perspektif değerini alır veya ayarlar.
PerspectiveOther { get; set; }PSD dosyasına yerleştirilen katmanın perspektif diğer değerini alır veya ayarlar.
virtual PlacedLayerType { get; set; }PSD dosyasına yerleştirilen katmanın türünü alır veya ayarlar.
override PsdVersion { get; }PlLd kaynağı için gereken minimum psd sürümünü alır. 0 kısıtlama olmadığını gösterir.
Right { get; set; }PSD dosyasında yerleştirilen katmanın doğru konumunu alır veya ayarlar.
override Signature { get; }PlLd kaynak imzasını alır.
Top { get; set; }PSD görüntüsünde yerleştirilen katmanın en üst konumunu alır veya ayarlar.
virtual TotalPages { get; set; }PSD dosyasındaki yerleştirilen katmanın toplam sayfalarını alır veya ayarlar.
virtual TransformMatrix { get; set; }PSD dosyasına yerleştirilen katmanın dönüşüm matrisini alır veya ayarlar.
virtual UniqueId { get; set; }PSD görüntüsüne yerleştirilen katmanın genel benzersiz tanımlayıcısını alır veya ayarlar.
UOrder { get; set; }PSD dosyasındaki yerleştirilen katmanın U sıra değerini alır veya ayarlar.
Value { get; set; }PSD görüntüsündeki yerleştirilmiş katmanın çözgü değerini alır veya ayarlar.
Version { get; }PSD dosyasına yerleştirilen katmanın sürümünü alır, genellikle 3.
VerticalMeshPoints { get; set; }PSD dosyasındaki yerleştirilmiş katmanın yatay ağ noktalarını alır veya ayarlar.
VerticalMeshPointUnit { get; set; }Dikey ağ noktalarının ölçü birimini alır veya ayarlar.
VOrder { get; set; }PSD dosyasındaki yerleştirilmiş katmanın V sıra değerini alır veya ayarlar.

yöntemler

İsimTanım
override Save(StreamContainer, int)PlLD kaynağını belirtilen akış kapsayıcısına kaydeder.
override ToString()a döndürürString bu örneği temsil eder.

Alanlar

İsimTanım
const TypeToolKeyTip aracı bilgi anahtarı.

Örnekler

Aşağıdaki kod, PlLdResource kaynağının desteğini gösterir.

[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;

                // Bazı parametrelere dikkat edin: görüntü Adobe® Photoshop® tarafından okunamaz hale gelebilir
                ////kaynak.UOrder = 6;
                ////kaynak.VOrder = 9;

                // Bunu değiştirmeyin, aksi takdirde serbest dönüşümü kullanamazsınız
                // veya altı çizili akıllı nesneyi vektör türüne değiştirin
                ////resource.PlacedLayerType = PlacedLayerType.Vector;

                // Bu benzersiz kimliğe sahip geçerli bir PlLdResource olmalıdır
                ////resource.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

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

Ayrıca bakınız