Class UnitArrayStructure

UnitArrayStructure class

Definieert de UnitArrayStructure-klasse die geldtDouble waardenarray en hun maateenheid. Het wordt gebruikt in de PSD-bestandsbronnen, meestal doorObjectArrayStructure .

public sealed class UnitArrayStructure : OSTypeStructure

Constructeurs

NaamBeschrijving
UnitArrayStructure(ClassID, UnitTypes, double[])Initialiseert een nieuw exemplaar van hetUnitArrayStructure klasse.

Eigenschappen

NaamBeschrijving
override Key { get; }Krijgt deze unit array structuur sleutel.
KeyName { get; set; }Haalt de sleutelnaam op of stelt deze in.
override Length { get; }Krijgt deOSTypeStructure lengte in bytes.
UnitType { get; set; }Haalt of stelt het maateenheidtype van deUnitArrayStructure waarden.
ValueCount { get; }Krijgt de waarde count.
Values { get; set; }Haalt of stelt de unit array structuur waarden in.

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 StructureKeyDefinieert de ‘UnFl’UnitArrayStructure sleutel.

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