Class UnitArrayStructure
UnitArrayStructure class
Καθορίζει την κλάση UnitArrayStructure που ισχύειDouble πίνακας τιμών και η μονάδα μέτρησής τους. Χρησιμοποιείται στους πόρους αρχείων PSD, συνήθως απόObjectArrayStructure
.
public sealed class UnitArrayStructure : OSTypeStructure
Κατασκευαστές
Ονομα | Περιγραφή |
---|
UnitArrayStructure(ClassID, UnitTypes, double[]) | Αρχικοποιεί μια νέα παρουσία τουUnitArrayStructure τάξη. |
Ιδιότητες
Ονομα | Περιγραφή |
---|
override Key { get; } | Λαμβάνει αυτό το κλειδί δομής πίνακα μονάδων. |
KeyName { get; set; } | Λαμβάνει ή ορίζει το όνομα του κλειδιού. |
override Length { get; } | Λαμβάνει τοOSTypeStructure μήκος σε byte. |
UnitType { get; set; } | Λαμβάνει ή ορίζει τον τύπο μονάδας μέτρησης τουUnitArrayStructure τιμές. |
ValueCount { get; } | Λαμβάνει τον αριθμό τιμών. |
Values { get; set; } | Λαμβάνει ή ορίζει τις τιμές δομής του πίνακα μονάδων. |
Μέθοδοι
Ονομα | Περιγραφή |
---|
virtual GetHeaderLength() | Λαμβάνει το μήκος της κεφαλίδας. |
Save(StreamContainer) | Αποθηκεύει τη δομή στο καθορισμένο κοντέινερ ροής. |
SaveWithoutKeyName(StreamContainer) | Αποθηκεύει τη δομή στο καθορισμένο κοντέινερ ροής. |
Πεδία
Ονομα | Περιγραφή |
---|
const StructureKey | Ορίζει το “UnFl”UnitArrayStructure κλειδί. |
Παραδείγματα
Ο παρακάτω κώδικας δείχνει την υποστήριξη των υπογραφών ObAr και 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);
}
Δείτε επίσης