Přidejte vrstvu výplně ve Photoshopu

Fotografie jsou velmi užitečným způsobem, jak odrážet informace. K vytváření obrázků se používají soubory formátu PSD. Mohou však existovat scénáře, jako je úprava několika souborů Photoshopu stejným způsobem. Například aplikace pro zpracování fotografií může potřebovat přidat vrstvu do více dokumentů Photoshopu spolu s dalšími operacemi. Aspose.PSD for .NET API nabízí mnoho funkcí pro práci s PSD, PSB, AI a mnoha dalšími formáty souborů. Podívejme se na následující případy použití související s přidáním vrstvy do souborů PSD:

Přidejte vrstvu výplně za běhu v dokumentu Photoshop pomocí jazyka C#

Aspose.PSD for .NET API podporuje vytvoření vrstvy výplně v souboru PSD. Vrstvu nemusíte nutně načítat z existujícího souboru. Jednoduše postupujte podle níže uvedených kroků a přidejte vrstvu výplně za běhu do souboru PSD:

  1. Inicializujte instanci třídy PsdImage s rozměry stránky
  2. Vytvořte instanci třídy FillLayer
  3. Nastavte zobrazovaný název pro vrstvu
  4. Přidejte vrstvu do obrázku

Následující fragment kódu ukazuje, jak přidat vrstvu výplně ve Photoshopu pomocí 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);
}

Tento fragment kódu vygeneruje soubor PSD o zadaných rozměrech, kde snímek obrazovky níže zobrazuje názvy tří vrstev výplně přesně tak, jak jsou nastaveny výše uvedeným kódem C#:

Přidejte vrstvu ve Photoshopu

Přidejte existující vrstvu výplně do souboru PSD pomocí C#

Již jsme se naučili vytvářet a přidávat nové vrstvy výplně. Pojďme se podívat, jak přidat vrstvu ze stávajícího souboru Photoshopu. Níže jsou uvedeny možnosti přidání existujících vrstev výplně:

i) Přidejte vrstvu výplně s výplní vzorem pomocí jazyka C#

Vzorová výplň může mít obrázek, čáru nebo stín, který oblast vyplní. Chcete-li přidat vrstvu pomocí Patten Fill v obrázku PSD, postupujte podle následujících kroků:

  1. Načtěte zdrojový soubor PSD
  2. Iterujte všechny vrstvy a zkontrolujte FillLayer
  3. Nastavte různá nastavení pro vrstvu
  4. Upravte vrstvu výplně
  5. Uložte obrázek

Fragment kódu níže ukazuje, jak přidat vrstvu výplně s výplní vzorem pomocí C#:

// Přidejte podporu vrstev výplně: Vzor
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");
            }
            // Editace 
            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) Přidejte vrstvu výplně s přechodovou výplní pomocí jazyka C#

Přechodovou výplň můžete také použít k vyplnění vrstvy v dokumentu aplikace Photoshop. Aspose.PSD for .NET API podporuje následující typy přechodových výplní:

  • Lineární
  • diamant
  • Radiální
  • Odraženo
  • Úhel

Níže jsou uvedeny kroky pro přidání vrstvy s přechodovou výplní:

Níže uvedený fragment kódu je založen na těchto krocích a ukazuje, jak přidat vrstvu GradientFill do dokumentu Photoshopu pomocí 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 });
    }
}

Tento fragment kódu vygeneruje pět různých souborů, každý s jiným typem přechodové výplně ve vrstvě souboru PSD.

iii) Přidejte vrstvu výplně s barevnou výplní pomocí jazyka C#

V dokumentu Photoshop, souboru PSD, můžete přidat vrstvu s barevnou výplní. Chcete-li přidat nebo vytvořit vrstvu výplně s barevnou výplní, postupujte podle následujících kroků:

  1. Načíst zdrojový obrázek PSD
  2. Zkontrolujte všechny vrstvy a najděte FillLayer
  3. Přečtěte si nastavení výplně vrstvy
  4. Nastavte barvu výplně a aktualizujte vrstvu
  5. Uložte obrázek PSD

Níže uvedený fragment kódu je založen na výše uvedených krocích, které ukazují, jak přidat vrstvu výplně do dokumentu Photoshop pomocí C#:

// Úplné příklady a datové soubory najdete na 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;
        }
    }
}

Závěr

V tomto článku jste prozkoumali několik z mnoha možností přidání vrstvy výplně do souborů PSD. Naučili jste se, jak přidat vrstvu od začátku, a také jak přidat vrstvu ze stávajících souborů PSD. Spolu s příklady jsou také řešeny různé typy vrstev přechodové výplně. Existuje mnoho dalších zajímavých funkcí, které nabízí Aspose.PSD for .NET API. V případě jakýchkoli obav nás neváhejte kontaktovat prostřednictvím Free Support Forum.

Viz také