Class UnitArrayStructure

UnitArrayStructure class

Definisce la classe UnitArrayStructure che contieneDouble array di valori e la loro unità di misura. Viene utilizzato nelle risorse del file PSD, solitamente daObjectArrayStructure .

public sealed class UnitArrayStructure : OSTypeStructure

Costruttori

NomeDescrizione
UnitArrayStructure(ClassID, UnitTypes, double[])Inizializza una nuova istanza diUnitArrayStructure classe.

Proprietà

NomeDescrizione
override Key { get; }Ottiene questa chiave della struttura dell’array di unità.
KeyName { get; set; }Ottiene o imposta il nome della chiave.
override Length { get; }Ottiene ilOSTypeStructure lunghezza in byte.
UnitType { get; set; }Ottiene o imposta il tipo di unità di misura diUnitArrayStructure valori.
ValueCount { get; }Ottiene il valore count.
Values { get; set; }Ottiene o imposta i valori della struttura dell’array di unità.

Metodi

NomeDescrizione
virtual GetHeaderLength()Ottiene la lunghezza dell’intestazione.
Save(StreamContainer)Salva la struttura nel contenitore del flusso specificato.
SaveWithoutKeyName(StreamContainer)Salva la struttura nel contenitore del flusso specificato.

Campi

NomeDescrizione
const StructureKeyDefinisce ‘UnFl’UnitArrayStructure chiave.

Esempi

Il codice seguente dimostra il supporto delle firme ObAr e 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);
}

Guarda anche