Class UnitArrayStructure

UnitArrayStructure class

Menentukan kelas UnitArrayStructure yang berlakuDouble array nilai dan satuan ukurannya. Digunakan dalam sumber daya file PSD, biasanya denganObjectArrayStructure .

public sealed class UnitArrayStructure : OSTypeStructure

Konstruktor

NamaKeterangan
UnitArrayStructure(ClassID, UnitTypes, double[])Menginisialisasi instance baru dariUnitArrayStructure kelas.

Properti

NamaKeterangan
override Key { get; }Mendapat kunci struktur larik unit ini.
KeyName { get; set; }Mendapat atau menyetel nama kunci.
override Length { get; }MendapatkanOSTypeStructure panjang dalam byte.
UnitType { get; set; }Mendapat atau menetapkan tipe satuan ukuran dariUnitArrayStructure nilai.
ValueCount { get; }Mendapat hitungan nilai.
Values { get; set; }Mendapat atau menetapkan nilai struktur larik unit.

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 StructureKeyMendefinisikan ‘UnFl’UnitArrayStructure kunci.

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