Class UnitArrayStructure

UnitArrayStructure class

Tutan UnitArrayStructure sınıfını tanımlarDouble değerler dizisi ve ölçü birimi. PSD dosya kaynaklarında, genellikle tarafından kullanılır.ObjectArrayStructure .

public sealed class UnitArrayStructure : OSTypeStructure

yapıcılar

İsimTanım
UnitArrayStructure(ClassID, UnitTypes, double[])Yeni bir örneğini başlatır.UnitArrayStructure sınıf.

Özellikleri

İsimTanım
override Key { get; }Bu birim dizi yapı anahtarını alır.
KeyName { get; set; }Anahtar adını alır veya ayarlar.
override Length { get; }Şunu alır:OSTypeStructure bayt cinsinden uzunluk.
UnitType { get; set; }Ölçü birimi türünü alır veya ayarlar.UnitArrayStructure değerler.
ValueCount { get; }Değer sayısını alır.
Values { get; set; }Birim dizi yapısı değerlerini alır veya ayarlar.

yöntemler

İsimTanım
virtual GetHeaderLength()Başlık uzunluğunu alır.
Save(StreamContainer)Yapıyı belirtilen akış kapsayıcısına kaydeder.
SaveWithoutKeyName(StreamContainer)Yapıyı belirtilen akış kapsayıcısına kaydeder.

Alanlar

İsimTanım
const StructureKey‘UnFl’yi tanımlarUnitArrayStructure anahtar.

Örnekler

Aşağıdaki kod, ObAr ve UnFl imzalarının desteğini gösterir.

[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);
}

Ayrıca bakınız