Class PlLdResource

PlLdResource class

Définit la classe PlLdResource qui contient des informations sur un calque placé dans le fichier PSD. Est utilisé pour prendre en charge les calques d’objets intelligents dans les images Adobe® Photoshop®. Il a été remplacé par SoLdResource dans Adobe® Photoshop® CS3

public class PlLdResource : PlacedResource

Propriétés

NomLa description
virtual AntiAliasPolicy { get; set; }Obtient ou définit la politique anti-alias du calque placé 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.
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.
virtual Items { get; set; }Obtient ou définit les éléments de chaîne.
override Key { get; }Obtient la clé de ressource PlLd.
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 PlLd en octets.
virtual PageNumber { get; set; }Obtient ou définit le numéro de page du calque placé 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.
virtual PlacedLayerType { get; set; }Obtient ou définit le type du calque placé dans le fichier PSD.
override PsdVersion { get; }Obtient la version psd minimale requise pour la ressource PlLd. 0 indique aucune restriction.
Right { get; set; }Obtient ou définit le bon emplacement du calque placé dans le fichier PSD.
override Signature { get; }Obtient la signature de la ressource PlLd.
Top { get; set; }Obtient ou définit l’emplacement supérieur du calque placé dans l’image PSD.
virtual TotalPages { get; set; }Obtient ou définit le nombre total de pages du calque placé dans le fichier PSD.
virtual TransformMatrix { get; set; }Obtient ou définit la matrice de transformation du calque placé dans le fichier PSD.
virtual UniqueId { get; set; }Obtient ou définit l’identifiant unique global de la couche placée 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.

Méthodes

NomLa description
override Save(StreamContainer, int)Enregistre la ressource PlLD 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.

Exemples

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

[C#]

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
        },
        0d,
        0d,
        0d,
        0d,
        0d,
        149d,
        310d,
        4,
        4,
        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,
        },
        0d,
        0d,
        0d,
        0d,
        0d,
        721d,
        1280d,
        4,
        4,
        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))
{
    PlLdResource resource = null;
    int index = 0;
    foreach (Layer imageLayer in image.Layers)
    {
        foreach (var imageResource in imageLayer.Resources)
        {
            resource = imageResource as PlLdResource;
            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);
                if (resource.IsCustom)
                {
                    AssertAreEqual(expectedValue[16], resource.HorizontalMeshPointUnit);
                    AssertAreEqual((double[])expectedValue[17], resource.HorizontalMeshPoints);
                    AssertAreEqual(expectedValue[18], resource.VerticalMeshPointUnit);
                    AssertAreEqual((double[])expectedValue[19], resource.VerticalMeshPoints);
                    var temp = resource.VerticalMeshPoints;
                    resource.VerticalMeshPoints = resource.HorizontalMeshPoints;
                    resource.HorizontalMeshPoints = temp;
                }
                
                resource.PageNumber = 2;
                resource.TotalPages = 3;
                resource.AntiAliasPolicy = 30;
                resource.Value = 1.23456789;
                resource.Perspective = 0.123456789;
                resource.PerspectiveOther = 0.987654321;
                resource.Top = -126;
                resource.Left = -215;
                resource.Bottom = 248;
                resource.Right = 145;

                // 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