Додайте шар заливки в Photoshop

Фотографії є дуже корисним способом відображення інформації. Для створення зображень використовуються файли формату PSD. Однак можуть бути сценарії, як-от редагування кількох файлів Photoshop за однаковими лініями. Наприклад, програмі обробки фотографій може знадобитися додати шар до кількох документів Photoshop разом з іншими операціями. Aspose.PSD for .NET API пропонує багато функцій для роботи з PSD, PSB, AI та багатьма іншими форматами файлів. Давайте розглянемо наступні випадки використання, пов’язані з додаванням шару у файли PSD:

Додайте шар заливки під час виконання в документ Photoshop за допомогою C#

API Aspose.PSD for .NET підтримує створення шару заливки у файлі PSD. Вам не обов’язково завантажувати шар із наявного файлу. Просто виконайте наведені нижче кроки, щоб додати шар заливки під час виконання у файл PSD:

  1. Ініціалізуйте екземпляр класу PsdImage розмірами сторінки
  2. Створіть екземпляр класу FillLayer.
  3. Встановіть відображуване ім’я для шару
  4. Додайте шар до зображення

У наступному фрагменті коду показано, як додати шар заливки у Photoshop за допомогою 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);
}

Цей фрагмент коду створить файл PSD із зазначеними розмірами, де на знімку екрана нижче показано назви трьох шарів заливки, які точно відповідають коду C# вище:

Додайте шар у Photoshop

Додайте наявний шар заливки у файл PSD за допомогою C#

Ми вже дізналися про створення та додавання нових шарів заливки. Давайте перевіримо, як додати шар із наявного файлу Photoshop. Нижче наведено можливості додавання існуючих шарів заливки:

i) Додайте шар заливки із заливкою візерунком за допомогою C#

Заливка візерунком може мати зображення, лінію або тінь для заповнення області. Вам потрібно виконати наведені нижче кроки, щоб додати шар із заливкою візерунком у зображення PSD:

  1. Завантажте вихідний файл PSD
  2. Перегляньте всі шари та перевірте наявність FillLayer
  3. Встановіть різні параметри для шару
  4. Відредагуйте шар заливки
  5. Збережіть зображення

Наведений нижче фрагмент коду показує, як додати шар заливки із заливкою візерунком за допомогою C#:

// Додайте підтримку шарів заливки: візерунок
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");
            }
            // Редагування 
            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) Додайте шар заливки з градієнтною заливкою за допомогою C#

Ви також можете використовувати градієнтну заливку для заповнення шару в документі Photoshop. API Aspose.PSD for .NET підтримує такі типи градієнтної заливки:

  • Лінійний
  • діамант
  • Радіальний
  • Відображено
  • Кут

Нижче наведено кроки для додавання шару з градієнтною заливкою:

  • Завантажте вихідний файл PSD
  • Ініціалізувати колекцію GradientType
  • Оголосити екземпляр класу GradientFillSettings.
  • Укажіть GradientType і оновіть шар
  • Зберегти зображення PSD

Наведений нижче фрагмент коду базується на цих кроках і показує, як додати шар GradientFill у документ Photoshop за допомогою 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 });
    }
}

Цей фрагмент коду згенерує п’ять різних файлів, кожен із різним видом градієнтної заливки на шарі файлу PSD.

iii) Додайте шар заливки із заливкою кольором за допомогою C#

Ви можете додати шар із кольоровою заливкою в документ Photoshop, файл PSD. Щоб додати або створити шар заливки із заливкою кольором, виконайте наведені нижче дії.

  1. Завантажте вихідне PSD-зображення
  2. Перевірте всі шари та знайдіть FillLayer
  3. Прочитайте налаштування заливки шару
  4. Встановіть колір заливки та оновіть шар
  5. Збережіть зображення PSD

Наведений нижче фрагмент коду базується на згаданих вище кроках, які показують, як додати шар заливки в документ Photoshop за допомогою C#:

// Щоб отримати повні приклади та файли даних, перейдіть на сторінку 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;
        }
    }
}

Висновок

У цій статті ви дослідили деякі з багатьох можливостей додавання шару заливки у файли PSD. Ви дізналися, як додати шар з нуля, а також як додати шар із існуючих файлів PSD. Крім того, разом із прикладами розглядаються різні типи шарів градієнтної заливки. API Aspose.PSD for .NET пропонує багато інших цікавих функцій. У разі будь-яких проблем зв’яжіться з нами через безкоштовні форуми підтримки.

Дивись також