Class ObjectArrayStructure

ObjectArrayStructure class

Menentukan kelas ObjectArrayStructure yang biasanya berlakuUnitArrayStructure array. Ini digunakan dalam sumber daya file PSD, seperti Sumber Daya PlLd dan Sumber Daya SoLd.

public sealed class ObjectArrayStructure : OSTypeStructure

Konstruktor

NamaKeterangan
ObjectArrayStructure(string, string, OSTypeStructure[])Menginisialisasi instance baru dariObjectArrayStructure kelas.
ObjectArrayStructure(int, ClassID, ClassID, string, OSTypeStructure[])Menginisialisasi instance baru dariObjectArrayStructure kelas.

Properti

NamaKeterangan
ClassID { get; set; }Mendapat atau menyetel ID kelas larik objek.
ClassName { get; set; }Mendapat atau menetapkan nama kelas array objek.
override Key { get; }Mendapat kunci struktur larik objek.
KeyName { get; set; }Mendapat atau menyetel nama kunci.
override Length { get; }MendapatkanOSTypeStructure panjang dalam byte.
StructureCount { get; }Mendapat hitungan substruktur larik objek.
Structures { get; set; }Mendapat atau menyetel salinan array struktur.

Metode

NamaKeterangan
virtual GetHeaderLength()Mendapatkan panjang tajuk.
Save(StreamContainer)Menyimpan struktur ke wadah aliran yang ditentukan.
SaveWithoutKeyName(StreamContainer)Menyimpan struktur ke wadah aliran yang ditentukan.

Bidang

NamaKeterangan
const StructureKeyMengidentifikasi kunci struktur ‘ObAr’.

Contoh

Kode berikut menunjukkan dukungan tanda tangan ObAr dan 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);
}

Lihat juga