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
Nom | La 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
Nom | La 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
Nom | La 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
Nom | La description |
---|
const StructureKey | Identifie 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