لایه پر را در فتوشاپ اضافه کنید

عکس ها راه بسیار مفیدی برای انعکاس اطلاعات هستند. فایل های فرمت PSD برای ایجاد تصاویر استفاده می شود. با این حال، ممکن است سناریوهایی مانند ویرایش چندین فایل فتوشاپ در همین راستا وجود داشته باشد. به عنوان مثال، یک برنامه پردازش عکس ممکن است نیاز به اضافه کردن یک لایه در چندین سند فتوشاپ، همراه با سایر عملیات داشته باشد. Aspose.PSD for .NET API ویژگی های بسیاری را برای کار با PSD، PSB، AI و بسیاری از فرمت های فایل دیگر ارائه می دهد. اجازه دهید موارد استفاده زیر را در رابطه با افزودن یک لایه در فایل‌های PSD بررسی کنیم:

افزودن لایه Fill در زمان اجرا در سند فتوشاپ با استفاده از سی شارپ

Aspose.PSD for .NET API از ایجاد یک لایه پر در یک فایل PSD پشتیبانی می کند. شما لزوماً نیازی به بارگذاری لایه از یک فایل موجود ندارید. به سادگی مراحل زیر را برای افزودن یک لایه پر در زمان اجرا در فایل PSD دنبال کنید:

  1. نمونه ای از کلاس PsdImage را با ابعاد صفحه راه اندازی کنید
  2. یک نمونه از کلاس FillLayer ایجاد کنید
  3. نام نمایشی را برای لایه تنظیم کنید
  4. لایه را به تصویر اضافه کنید

قطعه کد زیر نحوه افزودن لایه پر در فتوشاپ با استفاده از سی شارپ را نشان می دهد:

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# در بالا نشان می دهد:

اضافه کردن لایه در فتوشاپ

افزودن لایه Fill موجود در فایل PSD با استفاده از C#

ما قبلاً در مورد ایجاد و افزودن لایه های جدید یاد گرفته ایم. اجازه دهید نحوه اضافه کردن لایه از فایل فتوشاپ موجود را بررسی کنیم. در زیر امکان افزودن لایه های پر موجود وجود دارد:

i) یک لایه Fill با Pattern Fill با استفاده از C# اضافه کنید

پر کردن الگو ممکن است یک تصویر، خط یا سایه برای پر کردن منطقه داشته باشد. برای افزودن یک لایه با Patten Fill در یک تصویر PSD باید مراحل زیر را دنبال کنید:

  1. فایل PSD منبع را بارگیری کنید
  2. در تمام لایه‌ها تکرار کنید و FillLayer را بررسی کنید.
  3. تنظیمات مختلفی را برای لایه تنظیم کنید
  4. لایه Fill را ویرایش کنید
  5. تصویر را ذخیره کنید

قطعه کد زیر نحوه اضافه کردن لایه پر با Pattern fill با استفاده از C# را نشان می دهد:

// اضافه کردن پشتیبانی از لایه های Fill: Pattern
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) یک لایه Fill با Gradient Fill با استفاده از C# اضافه کنید

همچنین می توانید از Gradient fill برای پر کردن یک لایه در سند فتوشاپ استفاده کنید. Aspose.PSD for .NET API از انواع Gradient fill های زیر پشتیبانی می کند:

  • خطی
  • الماس
  • شعاعی
  • منعکس شده است
  • زاویه

در زیر مراحل اضافه کردن یک لایه با یک گرادیان پر شده است:

  • فایل PSD منبع را بارگیری کنید
  • راه اندازی مجموعه ای از GradientType
  • یک نمونه از کلاس GradientFillSettings را اعلام کنید
  • GradientType را مشخص کرده و لایه را به روز کنید
  • ذخیره تصویر PSD

قطعه کد زیر بر اساس این مراحل است و نحوه اضافه کردن لایه GradientFill در سند فتوشاپ را با استفاده از 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 });
    }
}

این قطعه کد پنج فایل مختلف را تولید می کند که هر کدام با نوع متفاوتی از Gradient پر در لایه فایل PSD هستند.

iii) یک لایه Fill با Color Fill با استفاده از C# اضافه کنید

می توانید یک لایه با رنگ پر در سند فتوشاپ، یک فایل PSD اضافه کنید. مراحل زیر را برای افزودن یا ایجاد لایه Fill با Color Fill دنبال کنید:

  1. تصویر PSD منبع را بارگیری کنید
  2. همه لایه ها را بررسی کنید و FillLayer را پیدا کنید
  3. تنظیمات پر کردن لایه را بخوانید
  4. رنگ پر را تنظیم کنید و لایه را به روز کنید
  5. تصویر PSD را ذخیره کنید

قطعه کد زیر بر اساس مراحل فوق الذکر است که نحوه افزودن لایه پر در سند فتوشاپ با استفاده از سی شارپ را نشان می دهد:

// برای نمونه‌های کامل و فایل‌های داده، لطفاً به 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 موجود اضافه کنید. انواع مختلف لایه‌های پر گرادیان نیز همراه با مثال‌ها مورد بررسی قرار گرفته‌اند. بسیاری از ویژگی های هیجان انگیز دیگر توسط Aspose.PSD for .NET API ارائه شده است. لطفاً در صورت وجود هرگونه نگرانی از طریق [تالارهای پشتیبانی رایگان8 با ما در تماس باشید.

همچنین ببینید