Class UnitArrayStructure

UnitArrayStructure class

Καθορίζει την κλάση UnitArrayStructure που ισχύειDouble πίνακας τιμών και η μονάδα μέτρησής τους. Χρησιμοποιείται στους πόρους αρχείων PSD, συνήθως απόObjectArrayStructure .

public sealed class UnitArrayStructure : OSTypeStructure

Κατασκευαστές

ΟνομαΠεριγραφή
UnitArrayStructure(ClassID, UnitTypes, double[])Αρχικοποιεί μια νέα παρουσία τουUnitArrayStructure τάξη.

Ιδιότητες

ΟνομαΠεριγραφή
override Key { get; }Λαμβάνει αυτό το κλειδί δομής πίνακα μονάδων.
KeyName { get; set; }Λαμβάνει ή ορίζει το όνομα του κλειδιού.
override Length { get; }Λαμβάνει τοOSTypeStructure μήκος σε byte.
UnitType { get; set; }Λαμβάνει ή ορίζει τον τύπο μονάδας μέτρησης τουUnitArrayStructure τιμές.
ValueCount { get; }Λαμβάνει τον αριθμό τιμών.
Values { get; set; }Λαμβάνει ή ορίζει τις τιμές δομής του πίνακα μονάδων.

Μέθοδοι

ΟνομαΠεριγραφή
virtual GetHeaderLength()Λαμβάνει το μήκος της κεφαλίδας.
Save(StreamContainer)Αποθηκεύει τη δομή στο καθορισμένο κοντέινερ ροής.
SaveWithoutKeyName(StreamContainer)Αποθηκεύει τη δομή στο καθορισμένο κοντέινερ ροής.

Πεδία

ΟνομαΠεριγραφή
const StructureKeyΟρίζει το “UnFl”UnitArrayStructure κλειδί.

Παραδείγματα

Ο παρακάτω κώδικας δείχνει την υποστήριξη των υπογραφών 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);
}

Δείτε επίσης