Füllebene in Photoshop hinzufügen

Fotos sind ein sehr nützliches Mittel, um Informationen wiederzugeben. Dateien im PSD Format werden zum Erstellen von Bildern verwendet. Es könnte jedoch Szenarien wie das Bearbeiten mehrerer Photoshop Dateien auf dieselbe Weise geben. Beispielsweise muss eine Fotoverarbeitungsanwendung möglicherweise eine Ebene in mehreren Photoshop Dokumenten zusammen mit anderen Vorgängen hinzufügen. Aspose.PSD for .NET API bietet viele Funktionen für die Arbeit mit PSD, PSB, AI und vielen anderen Dateiformaten. Lassen Sie uns die folgenden Anwendungsfälle im Zusammenhang mit dem Hinzufügen einer Ebene in PSD Dateien untersuchen:

Füllebene zur Laufzeit in Photoshop-Dokument mit C# hinzufügen

Aspose.PSD for .NET API unterstützt das Erstellen einer Füllebene in einer PSD Datei. Sie müssen den Layer nicht unbedingt aus einer vorhandenen Datei laden. Befolgen Sie einfach die folgenden Schritte, um zur Laufzeit eine Füllebene in der PSD Datei hinzuzufügen:

  1. Initialisieren Sie eine Instanz der Klasse PsdImage mit Seitenabmessungen
  2. Erstellen Sie eine Instanz der Klasse FillLayer.
  3. Legen Sie den Anzeigenamen für die Ebene fest
  4. Fügen Sie die Ebene dem Bild hinzu

Das folgende code snippet zeigt, wie Sie Füllebenen in Photoshop mit C# hinzufügen:

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);
}

Dieses code snippet generiert eine PSD Datei mit angegebenen Abmessungen, wobei der folgende Screenshot die Namen von drei Füllebenen genau so zeigt, wie sie durch den C# Code oben festgelegt wurden:

Ebene in Photoshop hinzufügen

Vorhandene Füllebene in PSD Datei mit C# hinzufügen

Wir haben bereits gelernt, wie man neue Füllebenen erstellt und hinzufügt. Sehen wir uns an, wie Sie eine Ebene aus einer vorhandenen Photoshop Datei hinzufügen. Im Folgenden finden Sie die Möglichkeiten, vorhandene Füllschichten hinzuzufügen:

i) Fügen Sie eine Füllebene mit Musterfüllung mit C# hinzu

Eine Musterfüllung kann ein Bild, eine Linie oder einen Schatten haben, um den Bereich zu füllen. Sie müssen die folgenden Schritte ausführen, um eine Ebene mit Patten Fill in einem PSD Bild hinzuzufügen:

  1. Quell-PSD Datei laden
  2. Durchlaufen Sie alle Ebenen und suchen Sie nach FillLayer
  3. Legen Sie verschiedene Einstellungen für die Ebene fest
  4. Bearbeiten Sie die Füllebene
  5. Speichern Sie das Bild

Das folgende code snippet zeigt, wie Sie mit C# eine Füllebene mit Musterfüllung hinzufügen:

// Unterstützung für Füllebenen hinzufügen: Muster
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");
            }
            // Bearbeitung 
            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) Fügen Sie eine Füllebene mit Verlaufsfüllung mit C# hinzu

Sie können eine Verlaufsfüllung auch zum Füllen einer Ebene in einem Photoshop-Dokument verwenden. Aspose.PSD for .NET API unterstützt die folgenden Arten von Verlaufsfüllungen:

  • Linear
  • Diamant
  • Radial
  • Reflektiert
  • Winkel

Im Folgenden finden Sie die Schritte zum Hinzufügen einer Ebene mit einer Verlaufsfüllung:

Das folgende code snippet basiert auf diesen Schritten und zeigt, wie Sie die GradientFill-Ebene in einem Photoshop-Dokument mit C# hinzufügen:

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 });
    }
}

Dieses code snippet generiert fünf verschiedene Dateien, jede mit einer anderen Art von Verlaufsfüllung in der Ebene der PSD Datei.

iii) Fügen Sie eine Füllebene mit Farbfüllung mit C# hinzu

Sie können eine Ebene mit Farbfüllung in einem Photoshop-Dokument, einer PSD Datei, hinzufügen. Führen Sie die folgenden Schritte aus, um eine Füllebene mit Farbfüllung hinzuzufügen oder zu erstellen:

  1. Quell-PSD Bild laden
  2. Überprüfen Sie alle Ebenen und finden Sie FillLayer
  3. Lesen Sie die Fülleinstellungen der Ebene
  4. Legen Sie die Füllfarbe fest und aktualisieren Sie die Ebene
  5. Speichern Sie das PSD Bild

Das folgende code snippet basiert auf den oben genannten Schritten, die zeigen, wie Füllebenen in Photoshop Dokumenten mit C# hinzugefügt werden:

// Vollständige Beispiele und Datendateien finden Sie unter 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;
        }
    }
}

Fazit

In diesem Artikel haben Sie einige der vielen Möglichkeiten zum Hinzufügen einer Füllebene in PSD Dateien untersucht. Sie haben gelernt, wie Sie eine Ebene von Grund auf neu hinzufügen und wie Sie eine Ebene aus vorhandenen PSD Dateien hinzufügen. Verschiedene Arten von Verlaufsfüllebenen werden ebenfalls zusammen mit Beispielen angesprochen. Es gibt viele andere aufregende Funktionen, die von der Aspose.PSD for .NET-API angeboten werden. Bei Bedenken können Sie sich gerne über die kostenlosen Support-Foren mit uns in Verbindung setzen.

Siehe auch