Class ObjectArrayStructure

ObjectArrayStructure class

يحدد فئة ObjectArrayStructure التي عادةً ما تحتوي علىUnitArrayStructure array. يتم استخدامه في موارد ملف PSD ، مثل PlLd Resource و SoLd Resource.

public sealed class ObjectArrayStructure : OSTypeStructure

المنشئون

اسموصف
ObjectArrayStructure(string, string, OSTypeStructure[])يقوم بتهيئة مثيل جديد لملفObjectArrayStructure فئة .
ObjectArrayStructure(int, ClassID, ClassID, string, OSTypeStructure[])يقوم بتهيئة مثيل جديد لملفObjectArrayStructure فئة .

الخصائص

اسموصف
ClassID { get; set; }الحصول على أو تحديد معرف فئة مصفوفة الكائن.
ClassName { get; set; }الحصول على أو تحديد اسم فئة مصفوفة الكائن.
override Key { get; }يحصل على مفتاح بنية مصفوفة الكائن.
KeyName { get; set; }الحصول على أو تحديد اسم المفتاح .
override Length { get; }يحصل على ملفOSTypeStructure الطول بالبايت.
StructureCount { get; }الحصول على عدد البنية الفرعية لصفيف الكائن.
Structures { get; set; }الحصول على نسخة من مصفوفة الهياكل أو تعيينها.

طُرق

اسموصف
virtual GetHeaderLength()الحصول على طول الرأس .
Save(StreamContainer)يحفظ الهيكل في حاوية التدفق المحددة.
SaveWithoutKeyName(StreamContainer)يحفظ الهيكل في حاوية التدفق المحددة.

مجالات

اسموصف
const StructureKeyيحدد مفتاح بنية “ObAr” .

أمثلة

يوضح الكود التالي دعم تواقيع ObAr و UnFl.

[C#]

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

var sourceFilePath = "LayeredSmartObjects8bit2.psd";
using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
{
    UnitArrayStructure verticalStructure = null;
    foreach (Layer imageLayer in image.Layers)
    {
        foreach (var imageResource in imageLayer.Resources)
        {
            var resource = imageResource as PlLdResource;
            if (resource != null && resource.IsCustom)
            {
                foreach (OSTypeStructure structure in resource.Items)
                {
                    if (structure.KeyName.ClassName == "customEnvelopeWarp")
                    {
                        AssertAreEqual(typeof(DescriptorStructure), structure.GetType());
                        var custom = (DescriptorStructure)structure;
                        AssertAreEqual(custom.Structures.Length, 1);
                        var mesh = custom.Structures[0];
                        AssertAreEqual(typeof(ObjectArrayStructure), mesh.GetType());
                        var meshObjectArray = (ObjectArrayStructure)mesh;
                        AssertAreEqual(meshObjectArray.Structures.Length, 2);
                        var vertical = meshObjectArray.Structures[1];
                        AssertAreEqual(typeof(UnitArrayStructure), vertical.GetType());
                        verticalStructure = (UnitArrayStructure)vertical;
                        AssertAreEqual(verticalStructure.UnitType, UnitTypes.Pixels);
                        AssertAreEqual(verticalStructure.ValueCount, 16);

                        break;
                    }
                }
            }
        }
    }

    AssertAreEqual(true, verticalStructure != null);
}

أنظر أيضا