Class PlLdResource

PlLdResource class

Define la clase PlLdResource que contiene información sobre una capa colocada en el archivo PSD. Se utiliza para admitir capas de objetos inteligentes en las imágenes de Adobe® Photoshop®. Fue reemplazada por SoLdResource en Adobe® Photoshop® CS3

public class PlLdResource : PlacedResource

Propiedades

NombreDescripción
virtual AntiAliasPolicy { get; set; }Obtiene o establece la política de suavizado de la capa colocada en la imagen PSD.
Bottom { get; set; }Obtiene o establece la ubicación inferior de la capa colocada en la imagen PSD.
Bounds { get; set; }Obtiene o establece los límites de la capa colocada en el archivo PSD.
HorizontalMeshPoints { get; set; }Obtiene o establece los puntos de malla horizontal de la capa colocada en el archivo PSD.
HorizontalMeshPointUnit { get; set; }Obtiene o establece la unidad de medida de los puntos de la malla horizontal.
IsCustom { get; set; }Obtiene o establece un valor que indica si el estilo de deformación de esta instancia es personalizado. Si es verdadero, contiene puntos de malla. Si se establece en falso, borra los puntos de malla.
virtual Items { get; set; }Obtiene o establece los elementos warp.
override Key { get; }Obtiene la clave de recurso PlLd.
Left { get; set; }Obtiene o establece la ubicación izquierda de la capa colocada en el archivo PSD.
override Length { get; }Obtiene la longitud del recurso PlLd en bytes.
virtual PageNumber { get; set; }Obtiene o establece el número de página de la capa colocada en el archivo PSD.
Perspective { get; set; }Obtiene o establece el valor de perspectiva de la capa colocada en el archivo PSD.
PerspectiveOther { get; set; }Obtiene o establece el otro valor de perspectiva de la capa colocada en el archivo PSD.
virtual PlacedLayerType { get; set; }Obtiene o establece el tipo de capa colocada en el archivo PSD.
override PsdVersion { get; }Obtiene la versión psd mínima necesaria para el recurso PlLd. 0 indica que no hay restricciones.
Right { get; set; }Obtiene o establece la ubicación correcta de la capa colocada en el archivo PSD.
override Signature { get; }Obtiene la firma del recurso PlLd.
Top { get; set; }Obtiene o establece la ubicación superior de la capa colocada en la imagen PSD.
virtual TotalPages { get; set; }Obtiene o establece el total de páginas de la capa colocada en el archivo PSD.
virtual TransformMatrix { get; set; }Obtiene o establece la matriz de transformación de la capa colocada en el archivo PSD.
virtual UniqueId { get; set; }Obtiene o establece el identificador único global de la capa colocada en la imagen PSD.
UOrder { get; set; }Obtiene o establece el valor de orden U de la capa colocada en el archivo PSD.
Value { get; set; }Obtiene o establece el valor de deformación de la capa colocada en la imagen PSD.
Version { get; }Obtiene la versión de la capa colocada en el archivo PSD, generalmente 3.
VerticalMeshPoints { get; set; }Obtiene o establece los puntos de malla horizontal de la capa colocada en el archivo PSD.
VerticalMeshPointUnit { get; set; }Obtiene o establece la unidad de medida de los puntos de malla vertical.
VOrder { get; set; }Obtiene o establece el valor de orden V de la capa colocada en el archivo PSD.

Métodos

NombreDescripción
override Save(StreamContainer, int)Guarda el recurso PlLD en el contenedor de flujo especificado.
override ToString()Devuelve unString que representa esta instancia.

Campos

NombreDescripción
const TypeToolKeyLa clave de información de la herramienta de tipo.

Ejemplos

El código siguiente demuestra la compatibilidad con el recurso 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;

                // Tenga cuidado con algunos parámetros: la imagen puede volverse ilegible con Adobe® Photoshop®
                ////recurso.UOrder = 6;
                ////recurso.VOrden = 9;

                // No cambie esto, de lo contrario no podrá usar la transformación libre
                // o cambie el objeto inteligente subrayado al tipo de vector
                ////recurso.PlacedLayerType = PlacedLayerType.Vector;

                // Debería haber un PlLdResource válido con este ID único
                ////recurso.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

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

Ver también