Lägg till fyllningslager i photoshop

Foton är ett mycket användbart sätt att reflektera information. Filer i formatet PSD används för att skapa bilder. Det kan dock finnas scenarier som att redigera flera Photoshop-filer på samma linje. Till exempel kan ett fotobehandlingsprogram behöva lägga till ett lager i flera Photoshop-dokument, tillsammans med andra åtgärder. Aspose.PSD for .NET API erbjuder många funktioner för att fungera med PSD, PSB, AI och många andra filformat. Låt oss utforska följande användningsfall relaterade till att lägga till ett lager i PSD-filer:

Lägg till fyllningslager vid körning i Photoshop-dokument med C#

Aspose.PSD för .NET API stöder att skapa ett fyllningslager i en PSD-fil. Du behöver inte nödvändigtvis ladda lagret från en befintlig fil. Följ bara stegen nedan för att lägga till ett fyllningslager vid körning i PSD-filen:

  1. Initiera en instans av klassen PsdImage med siddimensioner
  2. Skapa en instans av klassen FillLayer
  3. Ange visningsnamn för lagret
  4. Lägg till lagret i bilden

Följande kodavsnitt visar hur man lägger till fyllningslager i Photoshop med 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);
}

Det här kodavsnittet kommer att generera en PSD-fil med specificerade dimensioner där skärmdumpen nedan visar namnen på tre fyllningslager exakt enligt C#-koden ovan:

Lägg till lager i Photoshop

Lägg till befintligt fyllningslager i PSD-fil med C#

Vi har redan lärt oss om att skapa och lägga till nya fyllningslager. Låt oss kolla in hur man lägger till lager från befintlig Photoshop-fil. Följande är möjligheterna att lägga till befintliga fyllningslager:

i) Lägg till ett fyllningslager med mönsterfyllning med C#

En mönsterfyllning kan ha en bild, linje eller skugga för att fylla området. Du måste följa stegen nedan för att lägga till ett lager med Patten Fill i en PSD-bild:

  1. Ladda käll-PSD-fil
  2. Iterera genom alla lager och leta efter FillLayer
  3. Ställ in olika inställningar för lagret
  4. Redigera fyllskiktet
  5. Spara bilden

Kodavsnittet nedan visar hur man lägger till fyllningslager med Pattern fill med C#:

// Lägg till stöd för fyllningslager: Mönster
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");
            }
            // Redigering 
            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) Lägg till ett fyllningslager med gradientfyllning med C#

Du kan också använda övertoningsfyllning för att fylla ett lager i Photoshop Document. Aspose.PSD för .NET API stöder följande typer av övertoningsfyllningar:

  • Linjär
  • Diamant
  • Radiell
  • Reflekterat
  • Vinkel

Nedan följer stegen för att lägga till ett lager med en gradientfyllning:

Kodavsnittet nedan är baserat på dessa steg och visar hur man lägger till GradientFill-lager i Photoshop-dokument med 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 });
    }
}

Det här kodavsnittet kommer att generera fem olika filer, var och en med en annan typ av gradientfyllning i lagret av PSD-filen.

iii) Lägg till ett fyllningslager med färgfyllning med C#

Du kan lägga till ett lager med färgfyllning i Photoshop Document, en PSD-fil. Följ stegen nedan för att lägga till eller skapa ett fyllningslager med färgfyllning:

  1. Ladda käll-PSD-bild
  2. Kontrollera alla lager och hitta FillLayer
  3. Läs fyllningsinställningarna för lagret
  4. Ställ in fyllningsfärg och uppdatera lagret
  5. Spara PSD-bilden

Kodavsnittet nedan är baserat på de ovannämnda stegen som visar hur man lägger till fyllningslager i Photoshop Document med C#:

// För fullständiga exempel och datafiler, gå till 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;
        }
    }
}

Slutsats

I den här artikeln har du utforskat några av de många möjligheterna att lägga till ett fyllningslager i PSD-filer. Du har lärt dig hur man lägger till ett lager från början, samt hur man lägger till ett lager från befintliga PSD-filer. Olika typer av gradientfyllningslager tas också upp tillsammans med exempel. Det finns många andra spännande funktioner som erbjuds av Aspose.PSD for .NET API. Tveka inte att kontakta oss via Free Support Forums om du har några problem.

Se även