Class PlLdResource

PlLdResource class

Definisce la classe PlLdResource che contiene informazioni su un livello posizionato nel file PSD. Viene utilizzato per supportare i livelli di oggetti intelligenti nelle immagini di Adobe® Photoshop®. È stato sostituito da SoLdResource in Adobe® Photoshop® CS3

public class PlLdResource : PlacedResource

Proprietà

NomeDescrizione
virtual AntiAliasPolicy { get; set; }Ottiene o imposta la politica anti alias del livello inserito nell’immagine PSD.
Bottom { get; set; }Ottiene o imposta la posizione inferiore del livello posizionato nell’immagine PSD.
Bounds { get; set; }Ottiene o imposta i limiti del livello posizionato nel file PSD.
HorizontalMeshPoints { get; set; }Ottiene o imposta i punti di mesh orizzontale del livello posizionato nel file PSD.
HorizontalMeshPointUnit { get; set; }Ottiene o imposta l’unità di misura dei punti della maglia orizzontale.
IsCustom { get; set; }Ottiene o imposta un valore che indica se lo stile warp di questa istanza è personalizzato. Se vero contiene punti mesh. Se impostato su false cancella i punti mesh.
virtual Items { get; set; }Ottiene o imposta gli elementi di curvatura.
override Key { get; }Ottiene la chiave della risorsa PlLd.
Left { get; set; }Ottiene o imposta la posizione a sinistra del livello inserito nel file PSD.
override Length { get; }Ottiene la lunghezza della risorsa PlLd in byte.
virtual PageNumber { get; set; }Ottiene o imposta il numero di pagina del livello inserito nel file PSD.
Perspective { get; set; }Ottiene o imposta il valore prospettico del livello inserito nel file PSD.
PerspectiveOther { get; set; }Ottiene o imposta l’altro valore della prospettiva del livello inserito nel file PSD.
virtual PlacedLayerType { get; set; }Ottiene o imposta il tipo di layer posizionato nel file PSD.
override PsdVersion { get; }Ottiene la versione PSD minima richiesta per la risorsa PlLd. 0 indica nessuna restrizione.
Right { get; set; }Ottiene o imposta la posizione corretta del livello inserito nel file PSD.
override Signature { get; }Ottiene la firma della risorsa PlLd.
Top { get; set; }Ottiene o imposta la posizione superiore del livello inserito nell’immagine PSD.
virtual TotalPages { get; set; }Ottiene o imposta le pagine totali del livello posizionato nel file PSD.
virtual TransformMatrix { get; set; }Ottiene o imposta la matrice di trasformazione del livello posizionato nel file PSD.
virtual UniqueId { get; set; }Ottiene o imposta l’identificatore univoco globale del livello posizionato nell’immagine PSD.
UOrder { get; set; }Ottiene o imposta il valore dell’ordine U del livello inserito nel file PSD.
Value { get; set; }Ottiene o imposta il valore di distorsione del livello posizionato nell’immagine PSD.
Version { get; }Ottiene la versione del livello posizionato nel file PSD, in genere 3.
VerticalMeshPoints { get; set; }Ottiene o imposta i punti di mesh orizzontale del livello posizionato nel file PSD.
VerticalMeshPointUnit { get; set; }Ottiene o imposta l’unità di misura dei punti della maglia verticale.
VOrder { get; set; }Ottiene o imposta il valore dell’ordine V del livello posizionato nel file PSD.

Metodi

NomeDescrizione
override Save(StreamContainer, int)Salva la risorsa PlLD nel contenitore di flusso specificato.
override ToString()Restituisce aString che rappresenta questa istanza.

Campi

NomeDescrizione
const TypeToolKeyIl tasto informazioni dello strumento testo.

Esempi

Il codice seguente dimostra il supporto della risorsa 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;

                // Fai attenzione ad alcuni parametri: l'immagine potrebbe diventare illeggibile da Adobe® Photoshop®
                ////risorsa.UOrdine = 6;
                ////risorsa.VOrder = 9;

                // Non cambiarlo altrimenti non sarai in grado di usare la trasformazione libera
                // o cambia l'oggetto intelligente sottolineato nel tipo vettoriale
                ////resource.PlacedLayerType = PlacedLayerType.Vector;

                // Dovrebbe esserci PlLdResource valido con questo ID univoco
                ////resource.UniqueId = new Guid("98765432-10fe-cba0-1234-56789abcdef0");

                break;
            }
        }
    }

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

Guarda anche