Class ObjectArrayStructure

ObjectArrayStructure class

Genellikle tutan ObjectArrayStructure sınıfını tanımlarUnitArrayStructure array. PlLd Resource ve SoLd Resource. gibi PSD dosya kaynaklarında kullanılır.

public sealed class ObjectArrayStructure : OSTypeStructure

yapıcılar

İsimTanım
ObjectArrayStructure(string, string, OSTypeStructure[])Yeni bir örneğini başlatır.ObjectArrayStructure sınıf.
ObjectArrayStructure(int, ClassID, ClassID, string, OSTypeStructure[])Yeni bir örneğini başlatır.ObjectArrayStructure sınıf.

Özellikleri

İsimTanım
ClassID { get; set; }Nesne dizisi sınıfı ID. ‘yi alır veya ayarlar
ClassName { get; set; }Nesne dizisi sınıf adını alır veya ayarlar.
override Key { get; }Nesne dizisi 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.
StructureCount { get; }Nesne dizisi altyapı sayısını alır.
Structures { get; set; }Yapı dizisinin bir kopyasını 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‘ObAr’ yapı anahtarını tanımlar.

Ö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