Class ObjectArrayStructure

ObjectArrayStructure class

Definieert de klasse ObjectArrayStructure die gewoonlijk wordt gebruiktUnitArrayStructure array. Het wordt gebruikt in de PSD-bestandsbronnen, zoals PlLd Resource en SoLd Resource.

public sealed class ObjectArrayStructure : OSTypeStructure

Constructeurs

NaamBeschrijving
ObjectArrayStructure(string, string, OSTypeStructure[])Initialiseert een nieuw exemplaar van hetObjectArrayStructure klasse.
ObjectArrayStructure(int, ClassID, ClassID, string, OSTypeStructure[])Initialiseert een nieuw exemplaar van hetObjectArrayStructure klasse.

Eigenschappen

NaamBeschrijving
ClassID { get; set; }Haalt of stelt de klasse-ID van de objectarray in.
ClassName { get; set; }Haalt de klassenaam van de objectarray op of stelt deze in.
override Key { get; }Haalt de structuursleutel van de objectarray op.
KeyName { get; set; }Haalt de sleutelnaam op of stelt deze in.
override Length { get; }Krijgt deOSTypeStructure lengte in bytes.
StructureCount { get; }Haalt het aantal substructuren van de objectarray op.
Structures { get; set; }Haalt of stelt een kopie in van een array van structuren.

methoden

NaamBeschrijving
virtual GetHeaderLength()Haalt de koplengte op.
Save(StreamContainer)Slaat de structuur op in de opgegeven streamcontainer.
SaveWithoutKeyName(StreamContainer)Slaat de structuur op in de opgegeven streamcontainer.

Velden

NaamBeschrijving
const StructureKeyIdentificeert de ‘ObAr’-structuursleutel.

Voorbeelden

De volgende code demonstreert de ondersteuning van de ObAr- en UnFl-handtekeningen.

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

Zie ook