Class SoLdResource

SoLdResource class

Définit la classe SoLdResource qui contient des informations sur un calque d’objet intelligent dans un fichier PSD. Est utilisé pour prendre en charge les calques d’objet intelligent dans les images Adobe® Photoshop®.

public class SoLdResource : SmartObjectResource

Constructeurs

NomLa description
SoLdResource()Initialise une nouvelle instance duSoLdResource class. Ce constructeur par défaut est conçu pour être utilisé parSoLdResourceLoader . UtilisationSmartResourceCreator pour créer des classes SoLdResource.
SoLdResource(Guid, bool, bool)Initialise une nouvelle instance duSoLdResource class. Il est nécessaire de définir la propriété Items ou d’appeler InitializeItems() pour obtenir une instance prête. Ce constructeur est conçu pour être utilisé parSmartResourceCreator et dans les tests unitaires. UtilisationSmartResourceCreator pour créer des classes SoLdResource.

Propriétés

NomLa description
override AntiAliasPolicy { get; set; }Obtient ou définit la politique anti-alias des données de la couche d’objet intelligent dans l’image PSD.
Bottom { get; set; }Obtient ou définit l’emplacement inférieur du calque placé dans l’image PSD.
Bounds { get; set; }Obtient ou définit les limites du calque placé dans le fichier PSD.
Comp { get; set; }Obtient ou définit la valeur comp des données de la couche d’objet intelligent dans le fichier PSD. Compositions de calques dans les objets dynamiques
CompId { get; set; }Obtient ou définit l’ID de la composition actuellement sélectionnée pour le document enfant, qui sera -1 si aucune n’est sélectionnée. Les compositions sont des compositions d’une mise en page que les concepteurs peuvent créer. Grâce aux compositions de calques, vous pouvez créer, gérer et afficher plusieurs versions d’une mise en page dans un seul fichier Adobe® Photoshop®. Une composition de calque est un instantané d’un état du panneau Calques. Les compositions de calque enregistrent trois types d’options de calque mais cette propriété obtient l’identifiant de sélection de la composition de calque pour le calque d’objet intelligent dans le fichier PSD. Compositions de calques dans les objets dynamiques
Crop { get; set; }Obtient ou définit le recadrage des données de la couche d’objet intelligent dans l’image PSD.
DurationDenominator { get; set; }Obtient ou définit le dénominateur de durée.
DurationNumerator { get; set; }Obtient ou définit le numérateur de durée.
FrameCount { get; set; }Obtient ou définit le nombre d’images des données de la couche d’objet intelligent dans le fichier PSD.
FrameStepDenominator { get; set; }Obtient ou définit le dénominateur de pas de trame.
FrameStepNumerator { get; set; }Obtient ou définit le numérateur de pas de trame.
Height { get; set; }Obtient ou définit la hauteur.
HorizontalMeshPoints { get; set; }Obtient ou définit les points de maillage horizontaux du calque placé dans le fichier PSD.
HorizontalMeshPointUnit { get; set; }Obtient ou définit l’unité de mesure des points de maillage horizontaux.
IsCustom { get; set; }Obtient ou définit une valeur indiquant si ce style de déformation d’instance est personnalisé. Si vrai, il contient des points de maillage. Si défini sur false, il efface les points de maillage.
override Items { get; set; }Obtient ou définit les éléments de descripteur des données de la couche d’objets intelligents dans le fichier PSD.
override Key { get; }Obtient la clé de ressource de la couche d’objet intelligent SoLd.
Left { get; set; }Obtient ou définit l’emplacement de gauche du calque placé dans le fichier PSD.
override Length { get; }Obtient la longueur de la ressource d’objet intelligent en octets.
NonAffineTransformMatrix { get; set; }Obtient ou définit la matrice de transformation non affine des données de la couche d’objet intelligent dans le fichier PSD.
OriginalCompId { get; }Obtient l’ID d’origine de la composition actuellement sélectionnée pour le document enfant, qui sera -1 si aucune n’est sélectionnée. Cette propriété obtient l’identifiant de sélection de composition de calque d’origine pour le calque d’objet intelligent dans le fichier PSD. Compositions de calques dans les objets dynamiques
override PageNumber { get; set; }Obtient ou définit le numéro de page des données de la couche d’objet intelligent dans le fichier PSD.
Perspective { get; set; }Obtient ou définit la valeur de perspective du calque placé dans le fichier PSD.
PerspectiveOther { get; set; }Obtient ou définit l’autre valeur de perspective du calque placé dans le fichier PSD.
PlacedId { get; set; }Obtient ou définit l’identifiant unique de ces données de couche d’objet intelligent dans l’image PSD.
override PlacedLayerType { get; set; }Obtient ou définit le type des données de la couche d’objet intelligent dans le fichier PSD.
override PsdVersion { get; }Obtient la version psd minimale requise pour la ressource d’objet intelligent. 0 indique aucune restriction.
Resolution { get; set; }Obtient ou définit la résolution des données de la couche d’objet intelligent dans le fichier PSD.
ResolutionUnit { get; set; }Obtient ou définit l’unité de mesure de résolution des données de la couche d’objet intelligent dans le fichier PSD.
Right { get; set; }Obtient ou définit le bon emplacement du calque placé dans le fichier PSD.
override Signature { get; }Obtient la signature de ressource d’objet intelligent.
Top { get; set; }Obtient ou définit l’emplacement supérieur du calque placé dans l’image PSD.
override TotalPages { get; set; }Obtient ou définit le nombre total de pages des données de la couche d’objet intelligent dans le fichier PSD.
override TransformMatrix { get; set; }Obtient ou définit la matrice de transformation des données de la couche d’objet intelligent dans le fichier PSD.
override UniqueId { get; set; }Obtient ou définit l’identifiant unique global des données de la couche d’objets intelligentsSmartObjectResource dans l’image PSD.
UOrder { get; set; }Obtient ou définit la valeur d’ordre U du calque placé dans le fichier PSD.
Value { get; set; }Obtient ou définit la valeur de déformation du calque placé dans l’image PSD.
Version { get; }Obtient la version du calque placé dans le fichier PSD, généralement 3.
VerticalMeshPoints { get; set; }Obtient ou définit les points de maillage horizontaux du calque placé dans le fichier PSD.
VerticalMeshPointUnit { get; set; }Obtient ou définit l’unité de mesure des points de maillage vertical.
VOrder { get; set; }Obtient ou définit la valeur d’ordre V du calque placé dans le fichier PSD.
Width { get; set; }Obtient ou définit la largeur.

Méthodes

NomLa description
override Save(StreamContainer, int)Enregistre la ressource d’objet intelligent dans le conteneur de flux spécifié.
override ToString()Renvoie unString qui représente cette instance.

Des champs

NomLa description
const TypeToolKeyLa clé d’informations sur l’outil de type : ‘SoLd’.

Exemples

Le code suivant illustre la prise en charge de la ressource SoLdResource.

[C#]

// Cet exemple montre comment obtenir ou définir les propriétés de données de la couche d'objet intelligent du fichier 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;
                }

                // Ces valeurs doivent également être modifiées dans PlLdResource (avec l'UniqueId spécifié)
                // et certains d'entre eux doivent être en accord avec l'objet intelligent de soulignement dans le 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
                };

                // Cet identifiant unique doit être modifié dans les références s'il y en a
                resource.PlacedId = new Guid("12345678-9abc-def0-9876-54321fecba98");

                // Attention à certains paramètres : l'image peut devenir illisible par Adobe® Photoshop®
                ////ressource.UOrder = 6;
                ////ressource.VOrder = 9;

                // Ne changez rien sinon vous ne pourrez pas utiliser la transformation libre
                // ou changez l'objet intelligent de soulignement en type vectoriel
                ////resource.PlacedLayerType = PlacedLayerType.Vector ;

                // Il devrait y avoir une PlLdResource valide avec cet identifiant unique
                ////resource.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

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

Voir également