Aggiungi livello di riempimento in Photoshop

Le foto sono un modo molto utile per riflettere le informazioni. I file in formato PSD vengono utilizzati per creare immagini. Tuttavia, potrebbero esserci scenari come la modifica di diversi file di Photoshop lungo le stesse linee. Ad esempio, un’applicazione di elaborazione delle foto potrebbe dover aggiungere un livello in più documenti Photoshop, insieme ad altre operazioni. L’API Aspose.PSD for .NET offre molte funzionalità per lavorare con PSD, PSB, AI e molti altri formati di file. Esaminiamo i seguenti casi d’uso relativi all’aggiunta di un livello nei file PSD:

Aggiungi livello di riempimento in fase di esecuzione nel documento di Photoshop usando C#

Aspose.PSD per .NET API supporta la creazione di un livello di riempimento in un file PSD. Non è necessario caricare il livello da un file esistente. Segui semplicemente i passaggi seguenti per aggiungere un livello di riempimento in fase di esecuzione nel file PSD:

  1. Inizializza un’istanza della classe PsdImage con le dimensioni della pagina
  2. Crea un’istanza della classe FillLayer.
  3. Imposta il nome visualizzato per il livello
  4. Aggiungi il livello all’immagine

Il seguente frammento di codice mostra come aggiungere un livello di riempimento in Photoshop usando C#:

string outputFilePath = Path.Combine(dataDir, "output.psd");

using (var image = new PsdImage(100, 100))
{
    FillLayer colorFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color);
    colorFillLayer.DisplayName = "Color Fill Layer";
    image.AddLayer(colorFillLayer);

    FillLayer gradientFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Gradient);
    gradientFillLayer.DisplayName = "Gradient Fill Layer";
    image.AddLayer(gradientFillLayer);

    FillLayer patternFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Pattern);
    patternFillLayer.DisplayName = "Pattern Fill Layer";
    patternFillLayer.Opacity = 50;
    image.AddLayer(patternFillLayer);

    image.Save(outputFilePath);
}

Questo frammento di codice genererà un file PSD di dimensioni specificate in cui lo screenshot seguente mostra i nomi di tre livelli di riempimento esattamente come impostato dal codice C# sopra:

Aggiungi livello in Photoshop

Aggiungi il livello di riempimento esistente nel file PSD usando C#

Abbiamo già imparato a creare e aggiungere nuovi livelli di riempimento. Diamo un’occhiata a come aggiungere un livello dal file Photoshop esistente. Di seguito sono elencate le possibilità di aggiungere livelli di riempimento esistenti:

i) Aggiungi un livello di riempimento con riempimento a motivo usando C#

Un riempimento a motivo può avere un’immagine, una linea o un’ombra per riempire l’area. Devi seguire i passaggi seguenti per aggiungere un livello con Patten Fill in un’immagine PSD:

  1. Carica il file PSD di origine
  2. Scorri tutti i livelli e controlla FillLayer
  3. Imposta impostazioni diverse per il livello
  4. Modifica il livello di riempimento
  5. Salva l’immagine

Il frammento di codice seguente mostra come aggiungere un livello di riempimento con riempimento a motivo usando C#:

// Aggiungi il supporto dei livelli di riempimento: Pattern
string sourceFileName = dataDir + "PatternFillLayer.psd";
string exportPath = dataDir + "PatternFillLayer_Edited.psd";
double tolerance = 0.0001;
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            FillLayer fillLayer = (FillLayer)layer;
            PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
            if (fillSettings.HorizontalOffset != -46 ||
                fillSettings.VerticalOffset != -45 ||
                fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" ||
                fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" ||
                fillSettings.AlignWithLayer != true ||
                fillSettings.Linked != true ||
                fillSettings.PatternHeight != 64 ||
                fillSettings.PatternWidth != 64 ||
                fillSettings.PatternData.Length != 4096 ||
                Math.Abs(fillSettings.Scale - 50) > tolerance)
            {
                throw new Exception("PSD Image was read wrong");
            }
            // La modifica 
            fillSettings.Scale = 300;
            fillSettings.HorizontalOffset = 2;
            fillSettings.VerticalOffset = -20;
            fillSettings.PatternData = new int[]
            {
           Color.Red.ToArgb(), Color.Blue.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Red.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Blue.ToArgb(),  Color.Red.ToArgb()
            };
            fillSettings.PatternHeight = 3;
            fillSettings.PatternWidth = 3;
            fillSettings.AlignWithLayer = false;
            fillSettings.Linked = false;
            fillSettings.PatternId = Guid.NewGuid().ToString();
            fillLayer.Update();
            break;
        }
    }
    im.Save(exportPath);
}

ii) Aggiungi un livello di riempimento con riempimento sfumato usando C#

Puoi anche utilizzare il riempimento sfumato per riempire un livello nel documento di Photoshop. Aspose.PSD per .NET API supporta i seguenti tipi di riempimenti sfumati:

  • Lineare
  • Diamante
  • Radiale
  • riflessa
  • Angolo

Di seguito sono riportati i passaggi per aggiungere un livello con un riempimento sfumato:

Il frammento di codice seguente si basa su questi passaggi e mostra come aggiungere il livello GradientFill nel documento Photoshop utilizzando C#:

string fileName = dataDir + "FillLayerGradient.psd";
GradientType[] gradientTypes = new[]
{
    GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond
};
using (var image = Image.Load(fileName))
{
    PsdImage psdImage = (PsdImage)image;
    FillLayer fillLayer = (FillLayer)psdImage.Layers[0];
    GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings;
    foreach (var gradientType in gradientTypes)
    {
        fillSettings.GradientType = gradientType;
        fillLayer.Update();
        psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
    }
}

Questo frammento di codice genererà cinque file diversi, ciascuno con un diverso tipo di riempimento sfumato nel livello del file PSD.

iii) Aggiungi un livello di riempimento con riempimento colore usando C#

Puoi aggiungere un livello con Riempimento colore in Documento Photoshop, un file PSD. Segui i passaggi seguenti per aggiungere o creare un livello di riempimento con riempimento colore:

  1. Carica l’immagine PSD di origine
  2. Controlla tutti i livelli e trova FillLayer
  3. Leggi le impostazioni di riempimento del livello
  4. Imposta il colore di riempimento e aggiorna il livello
  5. Salva l’immagine PSD

Il frammento di codice riportato di seguito si basa sui passaggi precedenti che mostrano come aggiungere un livello di riempimento nel documento Photoshop utilizzando C#:

// Per esempi completi e file di dati, visitare https://github.com/aspose-psd/Aspose.PSD-for-.NET

string sourceFileName = dataDir + "ColorFillLayer.psd";
string exportPath = dataDir + "ColorFillLayer_output.psd";

var im = (PsdImage)Image.Load(sourceFileName);

using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            var fillLayer = (FillLayer)layer;

            if (fillLayer.FillSettings.FillType != FillType.Color)
            {
                throw new Exception("Wrong Fill Layer");
            }

            var settings = (IColorFillSettings)fillLayer.FillSettings;

            settings.Color = Color.Red;
            fillLayer.Update();
            im.Save(exportPath);
            break;
        }
    }
}

Conclusione

In questo articolo, hai esplorato alcune delle molte possibilità per aggiungere un livello di riempimento nei file PSD. Hai imparato come aggiungere un livello da zero e come aggiungere un livello da file PSD esistenti. Vengono anche affrontati diversi tipi di livelli di riempimento sfumato insieme agli esempi. Ci sono molte altre interessanti funzionalità offerte da Aspose.PSD for .NET API. Non esitare a contattarci tramite Forum di supporto gratuito in caso di dubbi.

Guarda anche