הוסף שכבת מילוי בפוטושופ

תמונות הן דרך שימושית מאוד לשקף מידע. קבצי פורמט PSD משמשים ליצירת תמונות. עם זאת, יכולים להיות תרחישים כמו עריכת מספר קובצי Photoshop באותם קווים. לדוגמה, ייתכן שיישום עיבוד תמונות יצטרך להוסיף שכבה במספר מסמכי Photoshop, יחד עם פעולות אחרות. Aspose.PSD for .NET API מציע תכונות רבות לעבודה עם PSD, PSB, AI ופורמטים רבים אחרים של קבצים. הבה נחקור את מקרי השימוש הבאים הקשורים להוספת שכבה בקבצי PSD:

הוסף שכבת מילוי בזמן ריצה ב-Photoshop Document באמצעות C#

Aspose.PSD עבור .NET API תומך ביצירת שכבת מילוי בקובץ PSD. לא בהכרח צריך לטעון את השכבה מקובץ קיים. פשוט בצע את השלבים הבאים כדי להוסיף שכבת מילוי בזמן ריצה בקובץ PSD:

  1. אתחול מופע של מחלקה PsdImage עם ממדי עמוד
  2. צור מופע של מחלקה FillLayer
  3. הגדר שם תצוגה עבור השכבה
  4. הוסף את השכבה לתמונה

קטע הקוד הבא מראה כיצד להוסיף שכבת מילוי בפוטושופ באמצעות 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#

מילוי דפוס עשוי לכלול תמונה, קו או צל למילוי האזור. עליך לבצע את השלבים הבאים להוספת שכבה עם Patten Fill in תמונת 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#

אתה יכול גם להשתמש במילוי Gradient למילוי שכבה ב-Photoshop Document. Aspose.PSD עבור .NET API תומך בסוגים הבאים של מילוי צבע:

  • ליניארי
  • יהלום
  • רַדִיאָלִי
  • משתקף
  • זָוִית

להלן השלבים להוספת שכבה עם מילוי שיפוע:

קטע הקוד שלהלן מבוסס על השלבים הבאים ומראה כיצד להוסיף שכבת 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 });
    }
}

קטע קוד זה יפיק חמישה קבצים שונים, כל אחד עם סוג שונה של מילוי Gradient בשכבת קובץ ה-PSD.

iii) הוסף שכבת מילוי עם מילוי צבע באמצעות C#

ניתן להוסיף שכבה עם מילוי צבע ב-Photoshop Document, קובץ PSD. בצע את השלבים הבאים להוספה או יצירה של שכבת מילוי עם מילוי צבע:

  1. טען תמונת PSD מקור
  2. בדוק את כל השכבות ומצא את FillLayer
  3. קרא את הגדרות המילוי של השכבה
  4. הגדר צבע מילוי ועדכן את השכבה
  5. שמור את תמונת ה-PSD

קטע הקוד שלהלן מבוסס על השלבים האמורים שמראים כיצד להוסיף שכבת מילוי ב-Photoshop Document באמצעות 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 קיימים. סוגים שונים של שכבות מילוי Gradient מטופלים גם יחד עם דוגמאות. ישנן תכונות מרגשות רבות אחרות המוצעות על ידי Aspose.PSD עבור .NET API. אנא אל תהסס ליצור איתנו קשר דרך פורומי תמיכה בחינם בכל מקרה של חששות.

ראה גם