Class ObjectArrayStructure
ObjectArrayStructure class
Define la clase ObjectArrayStructure que normalmente contieneUnitArrayStructure array. Se utiliza en los recursos del archivo PSD, como PlLd Resource y SoLd Resource.
public sealed class ObjectArrayStructure : OSTypeStructure
Constructores
| Nombre | Descripción |
|---|
| ObjectArrayStructure(string, string, OSTypeStructure[]) | Inicializa una nueva instancia delObjectArrayStructure clase. |
| ObjectArrayStructure(int, ClassID, ClassID, string, OSTypeStructure[]) | Inicializa una nueva instancia delObjectArrayStructure clase. |
Propiedades
| Nombre | Descripción |
|---|
| ClassID { get; set; } | Obtiene o establece el ID de clase de la matriz de objetos. |
| ClassName { get; set; } | Obtiene o establece el nombre de clase de la matriz de objetos. |
| override Key { get; } | Obtiene la clave de estructura de la matriz de objetos. |
| KeyName { get; set; } | Obtiene o establece el nombre de la clave. |
| override Length { get; } | Obtiene elOSTypeStructure longitud en bytes. |
| StructureCount { get; } | Obtiene el recuento de la subestructura de la matriz de objetos. |
| Structures { get; set; } | Obtiene o establece una copia de una matriz de estructuras. |
Métodos
| Nombre | Descripción |
|---|
| virtual GetHeaderLength() | Obtiene la longitud del encabezado. |
| Save(StreamContainer) | Guarda la estructura en el contenedor de flujo especificado. |
| SaveWithoutKeyName(StreamContainer) | Guarda la estructura en el contenedor de flujo especificado. |
Campos
| Nombre | Descripción |
|---|
| const StructureKey | Identifica la clave de estructura ‘ObAr’. |
Ejemplos
El código siguiente demuestra la compatibilidad con las firmas ObAr y 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);
}
Ver también