Class SoLdResource

SoLdResource class

Καθορίζει την κλάση SoLdResource που περιέχει πληροφορίες σχετικά με ένα επίπεδο έξυπνου αντικειμένου σε ένα αρχείο PSD. Is χρησιμοποιείται για την υποστήριξη επιπέδων έξυπνων αντικειμένων στις εικόνες του Adobe® Photoshop®.

public class SoLdResource : SmartObjectResource

Κατασκευαστές

ΟνομαΠεριγραφή
SoLdResource()Αρχικοποιεί μια νέα παρουσία τουSoLdResource class. Αυτός ο προεπιλεγμένος κατασκευαστής έχει σχεδιαστεί για χρήση απόSoLdResourceLoader . ΧρήσηSmartResourceCreator για τη δημιουργία κλάσεων SoLdResource.
SoLdResource(Guid, bool, bool)Αρχικοποιεί μια νέα παρουσία τουSoLdResource class. Είναι απαραίτητο να ορίσετε την ιδιότητα Items ή να καλέσετε την InitializeItems() για να λάβετε μια έτοιμη παρουσία. Αυτός ο κατασκευαστής έχει σχεδιαστεί για χρήση απόSmartResourceCreator και σε μοναδιαίες δοκιμές. ΧρήσηSmartResourceCreator για τη δημιουργία κλάσεων SoLdResource.

Ιδιότητες

ΟνομαΠεριγραφή
override AntiAliasPolicy { get; set; }Λαμβάνει ή ορίζει την πολιτική κατά του ψευδωνύμου των δεδομένων επιπέδου έξυπνου αντικειμένου στην εικόνα PSD.
Bottom { get; set; }Λαμβάνει ή ορίζει την κάτω θέση του τοποθετημένου στρώματος στην εικόνα PSD.
Bounds { get; set; }Λαμβάνει ή ορίζει τα όρια του τοποθετημένου επιπέδου στο αρχείο PSD.
Comp { get; set; }Λαμβάνει ή ορίζει την τιμή comp των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD. Σύνθεση επιπέδων σε Έξυπνα Αντικείμενα
CompId { get; set; }Λαμβάνει ή ορίζει το αναγνωριστικό του τρέχοντος επιλεγμένου comp για το θυγατρικό έγγραφο, το οποίο θα είναι -1 εάν δεν επιλεγεί κανένα. Τα Comps είναι συνθέσεις μιας διάταξης σελίδας που μπορούν να δημιουργήσουν οι σχεδιαστές. Χρησιμοποιώντας σύνθετα επίπεδα, μπορείτε να δημιουργήσετε, να διαχειριστείτε και να προβάλετε πολλαπλές εκδόσεις μιας διάταξης σε ένα μόνο αρχείο Adobe® Photoshop®. Ένα επίπεδο comp είναι ένα στιγμιότυπο μιας κατάστασης του πίνακα Layers. Οι comps επιπέδων αποθηκεύουν τρεις τύπους επιλογών επιπέδου, αλλά αυτή η ιδιότητα λαμβάνει το αναγνωριστικό επιλογής Layer Comp για το επίπεδο έξυπνου αντικειμένου στο αρχείο PSD. Σύνθεση επιπέδων σε Έξυπνα Αντικείμενα
Crop { get; set; }Λαμβάνει ή ορίζει την περικοπή των δεδομένων επιπέδου έξυπνου αντικειμένου στην εικόνα PSD.
DurationDenominator { get; set; }Λαμβάνει ή ορίζει τον παρονομαστή της διάρκειας.
DurationNumerator { get; set; }Λαμβάνει ή ορίζει τον αριθμητή διάρκειας.
FrameCount { get; set; }Λαμβάνει ή ορίζει τον αριθμό καρέ των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
FrameStepDenominator { get; set; }Λαμβάνει ή ορίζει τον παρονομαστή του βήματος του πλαισίου.
FrameStepNumerator { get; set; }Λαμβάνει ή ορίζει τον αριθμητή βημάτων πλαισίου.
Height { get; set; }Παίρνει ή ρυθμίζει το ύψος.
HorizontalMeshPoints { get; set; }Λαμβάνει ή ορίζει τα οριζόντια σημεία πλέγματος του τοποθετημένου στρώματος στο αρχείο PSD.
HorizontalMeshPointUnit { get; set; }Λαμβάνει ή ορίζει τη μονάδα μέτρησης των οριζόντιων σημείων πλέγματος.
IsCustom { get; set; }Λαμβάνει ή ορίζει μια τιμή που υποδεικνύει εάν αυτό το στιλ παραμόρφωσης της παρουσίας είναι προσαρμοσμένο. Εάν είναι αληθές, περιέχει σημεία πλέγματος. Εάν οριστεί σε false, διαγράφει σημεία πλέγματος.
override Items { get; set; }Λαμβάνει ή ορίζει τα στοιχεία περιγραφής των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
override Key { get; }Λαμβάνει το κλειδί πόρων επιπέδου έξυπνου αντικειμένου SoLd.
Left { get; set; }Λαμβάνει ή ορίζει την αριστερή θέση του τοποθετημένου επιπέδου στο αρχείο PSD.
override Length { get; }Λαμβάνει το μήκος πόρων έξυπνου αντικειμένου σε byte.
NonAffineTransformMatrix { get; set; }Λαμβάνει ή ορίζει τον μη συγγενικό πίνακα μετασχηματισμού των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
OriginalCompId { get; }Λαμβάνει το αρχικό αναγνωριστικό του τρέχοντος επιλεγμένου Comp για το θυγατρικό έγγραφο, το οποίο θα είναι -1 εάν δεν επιλεγεί κανένα. Αυτή η ιδιότητα λαμβάνει το αρχικό αναγνωριστικό επιλογής επιπέδου Comp για το επίπεδο έξυπνου αντικειμένου στο αρχείο PSD. Σύνθεση επιπέδων σε Έξυπνα Αντικείμενα
override PageNumber { get; set; }Λαμβάνει ή ορίζει τον αριθμό σελίδας των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
Perspective { get; set; }Λαμβάνει ή ορίζει την προοπτική τιμή του τοποθετημένου επιπέδου στο αρχείο PSD.
PerspectiveOther { get; set; }Λαμβάνει ή ορίζει την άλλη τιμή προοπτικής του τοποθετημένου επιπέδου στο αρχείο PSD.
PlacedId { get; set; }Λαμβάνει ή ορίζει το μοναδικό αναγνωριστικό αυτού του επιπέδου δεδομένων έξυπνου αντικειμένου στην εικόνα PSD.
override PlacedLayerType { get; set; }Λαμβάνει ή ορίζει τον τύπο των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
override PsdVersion { get; }Λαμβάνει την ελάχιστη έκδοση psd που απαιτείται για τον πόρο έξυπνου αντικειμένου. Το 0 δεν υποδηλώνει περιορισμούς.
Resolution { get; set; }Λαμβάνει ή ορίζει την ανάλυση των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
ResolutionUnit { get; set; }Λαμβάνει ή ορίζει τη μονάδα μέτρησης ανάλυσης των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
Right { get; set; }Λαμβάνει ή ορίζει τη σωστή θέση του τοποθετημένου επιπέδου στο αρχείο PSD.
override Signature { get; }Αποκτά την υπογραφή πόρων έξυπνου αντικειμένου.
Top { get; set; }Λαμβάνει ή ορίζει την επάνω θέση του τοποθετημένου στρώματος στην εικόνα PSD.
override TotalPages { get; set; }Λαμβάνει ή ορίζει τον συνολικό αριθμό σελίδων των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
override TransformMatrix { get; set; }Λαμβάνει ή ορίζει τη μήτρα μετασχηματισμού των δεδομένων επιπέδου έξυπνου αντικειμένου στο αρχείο PSD.
override UniqueId { get; set; }Λαμβάνει ή ορίζει το καθολικό μοναδικό αναγνωριστικό των δεδομένων του επιπέδου έξυπνου αντικειμένουSmartObjectResource στην εικόνα PSD.
UOrder { get; set; }Λαμβάνει ή ορίζει την τιμή σειράς U του τοποθετημένου επιπέδου στο αρχείο PSD.
Value { get; set; }Λαμβάνει ή ορίζει την τιμή στημόνι του τοποθετημένου στρώματος στην εικόνα PSD.
Version { get; }Λαμβάνει την έκδοση του τοποθετημένου επιπέδου στο αρχείο PSD, συνήθως 3.
VerticalMeshPoints { get; set; }Λαμβάνει ή ορίζει τα οριζόντια σημεία πλέγματος του τοποθετημένου στρώματος στο αρχείο PSD.
VerticalMeshPointUnit { get; set; }Λαμβάνει ή ορίζει τη μονάδα μέτρησης των κατακόρυφων σημείων πλέγματος.
VOrder { get; set; }Λαμβάνει ή ορίζει την τιμή τάξης V του τοποθετημένου επιπέδου στο αρχείο PSD.
Width { get; set; }Λαμβάνει ή ορίζει το πλάτος.

Μέθοδοι

ΟνομαΠεριγραφή
override Save(StreamContainer, int)Αποθηκεύει τον πόρο έξυπνου αντικειμένου στο καθορισμένο κοντέινερ ροής.
override ToString()Επιστρέφει αString που αντιπροσωπεύει αυτήν την περίπτωση.

Πεδία

ΟνομαΠεριγραφή
const TypeToolKeyΤο κλειδί πληροφοριών εργαλείου τύπου: ‘SoLd’.

Παραδείγματα

Ο παρακάτω κώδικας δείχνει την υποστήριξη του πόρου SoLdResource.

[C#]

// Αυτό το παράδειγμα δείχνει πώς να λάβετε ή να ορίσετε τις ιδιότητες δεδομένων επιπέδου έξυπνου αντικειμένου του αρχείου PSD.

void AssertAreEqual(object actual, object expected)
{
    var areEqual = object.Equals(actual, expected);
    if (!areEqual && actual is Array && expected is Array)
    {
        var actualArray = (Array)actual;
        var expectedArray = (Array)actual;
        if (actualArray.Length == expectedArray.Length)
        {
            for (int i = 0; i < actualArray.Length; i++)
            {
                if (!object.Equals(actualArray.GetValue(i), expectedArray.GetValue(i)))
                {
                    break;
                }
            }

            areEqual = true;
        }
    }

    if (!areEqual)
    {
        throw new FormatException(
            string.Format("Actual value {0} are not equal to expected {1}.", actual, expected));
    }
}

var sourceFilePath = "LayeredSmartObjects8bit2.psd";
var outputFilePath = "LayeredSmartObjects8bit2_output.psd";
var expectedValues = new object[]
{
    new object[]
    {
        true,
        "76f05a3b-7523-5e42-a1bb-27f4735bffa0",
        1,
        1,
        0x10,
        PlacedLayerType.Raster,
        new double[8]
        {
            29.937922786050663,
            95.419959734187131,
            126.85445817782261,
            1.0540625423957124,
            172.20861031651307,
            47.634102808208553,
            75.292074924741144,
            142
        },
        0.0,
        0.0,
        0.0,
        0d,
        0d,
        149d,
        310d,
        4,
        4,
        1,
        0,
        600,
        0,
        600,
        1,
        310d,
        149d,
        72d,
        UnitTypes.Density,
        -1,
        -1,
        -1,
        "d3388655-19e4-9742-82f2-f553bb01046a",
        new double[8]
        {
            29.937922786050663,
            95.419959734187131,
            126.85445817782261,
            1.0540625423957124,
            172.20861031651307,
            47.634102808208553,
            75.292074924741144,
            142
        },
        UnitTypes.Pixels,
        new double[16]
        {
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d,
            0.0d, 103.33333333333333d, 206.66666666666666d, 310.0d
        },
        UnitTypes.Pixels,
        new double[16]
        {
            0.0d, 0.0d, 0.0d, 0.0d,
            49.666666666666664d, 49.666666666666664d, 49.666666666666664d, 49.666666666666664d,
            99.333333333333329d, 99.333333333333329d, 99.333333333333329d, 99.333333333333329d,
            149, 149, 149, 149,
        },
    },
    new object[]
    {
        true,
        "cf0477a8-8f92-ac4f-9462-f78e26234851",
        1,
        1,
        0x10,
        PlacedLayerType.Raster,
        new double[8]
        {
            37.900314592235681,
            -0.32118219433001371,
            185.94210608826535,
            57.7076819802063,
            153.32047433609358,
            140.9311755779743,
            5.2786828400639294,
            82.902311403437977,
        },
        0.0,
        0.0,
        0.0,
        0d,
        0d,
        721d,
        1280d,
        4,
        4,
        1,
        0,
        600,
        0,
        600,
        1,
        1280d,
        721d,
        72d,
        UnitTypes.Density,
        -1,
        -1,
        -1,
        "625cc4b9-2c5f-344f-8636-03caf2bd3489",
        new double[8]
        {
            37.900314592235681,
            -0.32118219433001371,
            185.94210608826535,
            57.7076819802063,
            153.32047433609358,
            140.9311755779743,
            5.2786828400639294,
            82.902311403437977,
        },
        UnitTypes.Pixels,
        new double[16]
        {
            0.0, 426.66666666666663, 853.33333333333326, 1280,
            0.0, 426.66666666666663, 853.33333333333326, 1280,
            0.0, 426.66666666666663, 853.33333333333326, 1280,
            0.0, 426.66666666666663, 853.33333333333326, 1280,
        },
        UnitTypes.Pixels,
        new double[16]
        {
            0.0, 0.0, 0.0, 0.0,
            240.33333333333331, 240.33333333333331, 240.33333333333331, 240.33333333333331,
            480.66666666666663, 480.66666666666663, 480.66666666666663, 480.66666666666663,
            721, 721, 721, 721,
        },
        0,
        0
    }
};

using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
{
    SoLdResource resource = null;
    int index = 0;
    foreach (Layer imageLayer in image.Layers)
    {
        foreach (var imageResource in imageLayer.Resources)
        {
            resource = imageResource as SoLdResource;
            if (resource != null)
            {
                var expectedValue = (object[])expectedValues[index++];
                AssertAreEqual(expectedValue[0], resource.IsCustom);
                AssertAreEqual(expectedValue[1], resource.UniqueId.ToString());
                AssertAreEqual(expectedValue[2], resource.PageNumber);
                AssertAreEqual(expectedValue[3], resource.TotalPages);
                AssertAreEqual(expectedValue[4], resource.AntiAliasPolicy);
                AssertAreEqual(expectedValue[5], resource.PlacedLayerType);
                AssertAreEqual(8, resource.TransformMatrix.Length);
                AssertAreEqual((double[])expectedValue[6], resource.TransformMatrix);
                AssertAreEqual(expectedValue[7], resource.Value);
                AssertAreEqual(expectedValue[8], resource.Perspective);
                AssertAreEqual(expectedValue[9], resource.PerspectiveOther);
                AssertAreEqual(expectedValue[10], resource.Top);
                AssertAreEqual(expectedValue[11], resource.Left);
                AssertAreEqual(expectedValue[12], resource.Bottom);
                AssertAreEqual(expectedValue[13], resource.Right);
                AssertAreEqual(expectedValue[14], resource.UOrder);
                AssertAreEqual(expectedValue[15], resource.VOrder);

                AssertAreEqual(expectedValue[16], resource.Crop);
                AssertAreEqual(expectedValue[17], resource.FrameStepNumerator);
                AssertAreEqual(expectedValue[18], resource.FrameStepDenominator);
                AssertAreEqual(expectedValue[19], resource.DurationNumerator);
                AssertAreEqual(expectedValue[20], resource.DurationDenominator);
                AssertAreEqual(expectedValue[21], resource.FrameCount);
                AssertAreEqual(expectedValue[22], resource.Width);
                AssertAreEqual(expectedValue[23], resource.Height);
                AssertAreEqual(expectedValue[24], resource.Resolution);
                AssertAreEqual(expectedValue[25], resource.ResolutionUnit);
                AssertAreEqual(expectedValue[26], resource.Comp);
                AssertAreEqual(expectedValue[27], resource.CompId);
                AssertAreEqual(expectedValue[28], resource.OriginalCompId);
                AssertAreEqual(expectedValue[29], resource.PlacedId.ToString());
                AssertAreEqual((IEnumerable)expectedValue[30], resource.NonAffineTransformMatrix);
                if (resource.IsCustom)
                {
                    AssertAreEqual(expectedValue[31], resource.HorizontalMeshPointUnit);
                    AssertAreEqual((double[])expectedValue[32], resource.HorizontalMeshPoints);
                    AssertAreEqual(expectedValue[33], resource.VerticalMeshPointUnit);
                    AssertAreEqual((double[])expectedValue[34], resource.VerticalMeshPoints);
                    var temp = resource.VerticalMeshPoints;
                    resource.VerticalMeshPoints = resource.HorizontalMeshPoints;
                    resource.HorizontalMeshPoints = temp;
                }

                // Αυτές οι τιμές πρέπει να αλλάξουν και στο PlLdResource (με το καθορισμένο UniqueId)
                // και μερικά από αυτά πρέπει να είναι σε συμφωνία με το υπογραμμιζόμενο έξυπνο αντικείμενο στο LinkDataSource
                resource.PageNumber = 2;
                resource.TotalPages = 3;
                resource.AntiAliasPolicy = 0;
                resource.Value = 1.23456789;
                resource.Perspective = 0.123456789;
                resource.PerspectiveOther = 0.987654321;
                resource.Top = -126;
                resource.Left = -215;
                resource.Bottom = 248;
                resource.Right = 145;
                resource.Crop = 4;
                resource.FrameStepNumerator = 1;
                resource.FrameStepDenominator = 601;
                resource.DurationNumerator = 2;
                resource.DurationDenominator = 602;
                resource.FrameCount = 11;
                resource.Width = 541;
                resource.Height = 249;
                resource.Resolution = 144;
                resource.Comp = 21;
                resource.CompId = 22;
                resource.TransformMatrix = new double[8]
                {
                    12.937922786050663,
                    19.419959734187131,
                    2.85445817782261,
                    1.0540625423957124,
                    7.20861031651307,
                    14.634102808208553,
                    17.292074924741144,
                    4
                };
                resource.NonAffineTransformMatrix = new double[8]
                {
                    129.937922786050663,
                    195.419959734187131,
                    26.85445817782261,
                    12.0540625423957124,
                    72.20861031651307,
                    147.634102808208553,
                    175.292074924741144,
                    42
                };

                // Αυτό το μοναδικό αναγνωριστικό θα πρέπει να αλλάξει σε αναφορές εάν υπάρχουν
                resource.PlacedId = new Guid("12345678-9abc-def0-9876-54321fecba98");

                // Να είστε προσεκτικοί με ορισμένες παραμέτρους: η εικόνα ενδέχεται να μην είναι αναγνώσιμη από το Adobe® Photoshop®
                ////resource.UOrder = 6;
                ////resource.VOrder = 9;

                // Μην το αλλάξετε αυτό, διαφορετικά δεν θα μπορείτε να χρησιμοποιήσετε τον ελεύθερο μετασχηματισμό
                // ή αλλάξτε το έξυπνο αντικείμενο υπογράμμισης σε διανυσματικό τύπο
                ////resource.PlacedLayerType = PlacedLayerType.Vector;

                // Θα πρέπει να υπάρχει έγκυρος PlLdResource με αυτό το μοναδικό αναγνωριστικό
                ////resource.UniqueId = νέος οδηγός("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

    AssertAreEqual(true, resource != null);
    image.Save(outputFilePath, new PsdOptions(image));
}

Δείτε επίσης