Class PlLdResource

PlLdResource class

Menentukan kelas PlLdResource yang berisi informasi tentang lapisan yang ditempatkan di file PSD. Digunakan untuk mendukung lapisan objek pintar di gambar Adobe® Photoshop®. Digantikan oleh SoLdResource di Adobe® Photoshop® CS3

public class PlLdResource : PlacedResource

Properti

NamaKeterangan
virtual AntiAliasPolicy { get; set; }Mendapat atau menyetel kebijakan anti alias dari lapisan yang ditempatkan di gambar PSD.
Bottom { get; set; }Mendapat atau menyetel lokasi bawah dari lapisan yang ditempatkan di gambar PSD.
Bounds { get; set; }Mendapat atau menyetel batas lapisan yang ditempatkan di file PSD.
HorizontalMeshPoints { get; set; }Mendapat atau menyetel titik jaring horizontal dari lapisan yang ditempatkan di file PSD.
HorizontalMeshPointUnit { get; set; }Mendapat atau menetapkan satuan ukuran dari titik jaring horizontal.
IsCustom { get; set; }Mendapat atau menetapkan nilai yang menunjukkan apakah gaya warp instance ini adalah custom. Jika true, gaya ini berisi poin mesh. Jika disetel ke false, itu akan menghapus poin mesh.
virtual Items { get; set; }Mendapat atau mengatur item warp.
override Key { get; }Mendapat kunci sumber daya PlLd.
Left { get; set; }Mendapat atau menyetel lokasi kiri dari lapisan yang ditempatkan di file PSD.
override Length { get; }Mendapatkan panjang sumber daya PLD dalam byte.
virtual PageNumber { get; set; }Mendapat atau menyetel nomor halaman dari lapisan yang ditempatkan di file PSD.
Perspective { get; set; }Mendapat atau menyetel nilai perspektif dari lapisan yang ditempatkan di file PSD.
PerspectiveOther { get; set; }Mendapat atau menyetel nilai perspektif lain dari lapisan yang ditempatkan di file PSD.
virtual PlacedLayerType { get; set; }Mendapat atau menyetel jenis lapisan yang ditempatkan di file PSD.
override PsdVersion { get; }Mendapat versi psd minimal yang diperlukan untuk sumber daya PlLd. 0 menunjukkan tidak ada batasan.
Right { get; set; }Mendapatkan atau menyetel lokasi yang tepat dari lapisan yang ditempatkan di file PSD.
override Signature { get; }Mendapat tanda tangan sumber daya PlLd.
Top { get; set; }Mendapat atau menyetel lokasi teratas dari lapisan yang ditempatkan di gambar PSD.
virtual TotalPages { get; set; }Mendapat atau menyetel total halaman dari lapisan yang ditempatkan di file PSD.
virtual TransformMatrix { get; set; }Mendapat atau menyetel matriks transformasi dari lapisan yang ditempatkan di file PSD.
virtual UniqueId { get; set; }Mendapat atau menyetel pengidentifikasi unik global dari lapisan yang ditempatkan di gambar PSD.
UOrder { get; set; }Mendapat atau menyetel nilai urutan U dari lapisan yang ditempatkan di file PSD.
Value { get; set; }Mendapat atau menyetel nilai warp dari lapisan yang ditempatkan di gambar PSD.
Version { get; }Mendapat versi lapisan yang ditempatkan di file PSD, biasanya 3.
VerticalMeshPoints { get; set; }Mendapat atau menyetel titik jaring horizontal dari lapisan yang ditempatkan di file PSD.
VerticalMeshPointUnit { get; set; }Mendapat atau menetapkan satuan ukuran dari titik jaring vertikal.
VOrder { get; set; }Mendapat atau menyetel nilai urutan V dari lapisan yang ditempatkan di file PSD.

Metode

NamaKeterangan
override Save(StreamContainer, int)Menyimpan sumber daya PLLD ke wadah aliran yang ditentukan.
override ToString()Mengembalikan aString yang mewakili instance ini.

Bidang

NamaKeterangan
const TypeToolKeyKunci info alat ketik.

Contoh

Kode berikut menunjukkan dukungan sumber daya 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;

                // Hati-hati dengan beberapa parameter: gambar mungkin menjadi tidak terbaca oleh Adobe® Photoshop®
                ////resource.UOrder = 6;
                ////resource.VOrder = 9;

                // Jangan ubah ini jika tidak, Anda tidak akan dapat menggunakan transformasi bebas
                // atau ubah smart object yang digarisbawahi menjadi tipe vektor
                ////resource.PlacedLayerType = PlacedLayerType.Vector;

                // Harus ada PlLdResource yang valid dengan ID unik ini
                ////resource.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

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

Lihat juga