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 μήκος σε byte.
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);
}

Δείτε επίσης