Class ObjectArrayStructure

ObjectArrayStructure class

Définit la classe ObjectArrayStructure qui contient généralementUnitArrayStructure array. Il est utilisé dans les ressources du fichier PSD, telles que PlLd Resource et SoLd Resource.

public sealed class ObjectArrayStructure : OSTypeStructure

Constructeurs

NomLa description
ObjectArrayStructure(string, string, OSTypeStructure[])Initialise une nouvelle instance duObjectArrayStructure classe.
ObjectArrayStructure(int, ClassID, ClassID, string, OSTypeStructure[])Initialise une nouvelle instance duObjectArrayStructure classe.

Propriétés

NomLa description
ClassID { get; set; }Obtient ou définit l’ID de classe de tableau d’objets.
ClassName { get; set; }Obtient ou définit le nom de la classe de tableau d’objets.
override Key { get; }Obtient la clé de structure du tableau d’objets.
KeyName { get; set; }Obtient ou définit le nom de la clé.
override Length { get; }Obtient leOSTypeStructure longueur en octets.
StructureCount { get; }Obtient le nombre de sous-structures de tableau d’objets.
Structures { get; set; }Obtient ou définit une copie d’un tableau de structures.

Méthodes

NomLa description
virtual GetHeaderLength()Obtient la longueur de l’en-tête.
Save(StreamContainer)Enregistre la structure dans le conteneur de flux spécifié.
SaveWithoutKeyName(StreamContainer)Enregistre la structure dans le conteneur de flux spécifié.

Des champs

NomLa description
const StructureKeyIdentifie la clé de structure ‘ObAr’.

Exemples

Le code suivant illustre la prise en charge des signatures ObAr et 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);
}

Voir également