Class PlLdResource

PlLdResource class

يحدد فئة PlLdResource التي تحتوي على معلومات حول طبقة موضوعة في ملف PSD. تستخدم لدعم طبقات الكائنات الذكية في صور Adobe® Photoshop® . تم استبدالها بـ SoLdResource في Adobe® Photoshop® CS3

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; }الحصول على قيمة أو تعيينها للإشارة إلى ما إذا كان نمط التواء في المثيل مخصصًا أم لا. إذا تم الضبط على خطأ ، فإنه يمحو نقاط الشبكة.
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; }يحصل على الحد الأدنى من إصدار psd المطلوب لمورد PlLd. 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; }الحصول على أو تعيين قيمة طلب U للطبقة الموضوعة في ملف PSD.
Value { get; set; }الحصول على أو تعيين قيمة التواء للطبقة الموضوعة في صورة PSD.
Version { get; }يحصل على نسخة الطبقة الموضوعة في ملف PSD ، عادة 3.
VerticalMeshPoints { get; set; }الحصول على أو تعيين نقاط الشبكة الأفقية للطبقة الموضوعة في ملف PSD.
VerticalMeshPointUnit { get; set; }الحصول على أو تحديد وحدة قياس نقاط الشبكة العمودية.
VOrder { get; set; }الحصول على أو تعيين قيمة ترتيب V للطبقة الموضوعة في ملف PSD.

طُرق

اسموصف
override Save(StreamContainer, int)يحفظ مورد PlLD في حاوية التدفق المحددة.
override ToString()إرجاع أString الذي يمثل هذا المثال.

مجالات

اسموصف
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 ;

                // يجب أن يكون هناك PlLdResource صالحًا بهذا المعرف الفريد
                ////resource.UniqueId = دليل جديد ("98765432-10fe-cba0-1234-56789abcdef0") ;

                break;
            }
        }
    }

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

أنظر أيضا