Фотографії є дуже корисним способом відображення інформації. Для створення зображень використовуються файли формату PSD. Однак можуть бути сценарії, як-от редагування кількох файлів Photoshop за однаковими лініями. Наприклад, програмі обробки фотографій може знадобитися додати шар до кількох документів Photoshop разом з іншими операціями. Aspose.PSD for .NET API пропонує багато функцій для роботи з PSD, PSB, AI та багатьма іншими форматами файлів. Давайте розглянемо наступні випадки використання, пов’язані з додаванням шару у файли PSD:
- Додайте шар заливки під час виконання у файл PSD за допомогою C#
- Додайте існуючий шар заливки у файл PSD за допомогою C#
Додайте шар заливки під час виконання в документ Photoshop за допомогою C#
API Aspose.PSD for .NET підтримує створення шару заливки у файлі PSD. Вам не обов’язково завантажувати шар із наявного файлу. Просто виконайте наведені нижче кроки, щоб додати шар заливки під час виконання у файл PSD:
- Ініціалізуйте екземпляр класу PsdImage розмірами сторінки
- Створіть екземпляр класу FillLayer.
- Встановіть відображуване ім’я для шару
- Додайте шар до зображення
У наступному фрагменті коду показано, як додати шар заливки у 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# вище:
Додайте наявний шар заливки у файл PSD за допомогою C#
Ми вже дізналися про створення та додавання нових шарів заливки. Давайте перевіримо, як додати шар із наявного файлу Photoshop. Нижче наведено можливості додавання існуючих шарів заливки:
i) Додайте шар заливки із заливкою візерунком за допомогою C#
Заливка візерунком може мати зображення, лінію або тінь для заповнення області. Вам потрібно виконати наведені нижче кроки, щоб додати шар із заливкою візерунком у зображення PSD:
- Завантажте вихідний файл PSD
- Перегляньте всі шари та перевірте наявність FillLayer
- Встановіть різні параметри для шару
- Відредагуйте шар заливки
- Збережіть зображення
Наведений нижче фрагмент коду показує, як додати шар заливки із заливкою візерунком за допомогою 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. Щоб додати або створити шар заливки із заливкою кольором, виконайте наведені нижче дії.
- Завантажте вихідне PSD-зображення
- Перевірте всі шари та знайдіть FillLayer
- Прочитайте налаштування заливки шару
- Встановіть колір заливки та оновіть шар
- Збережіть зображення 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 пропонує багато інших цікавих функцій. У разі будь-яких проблем зв’яжіться з нами через безкоштовні форуми підтримки.