เพิ่มชั้นเติมใน Photoshop

ภาพถ่ายเป็นวิธีที่มีประโยชน์มากในการสะท้อนข้อมูล ไฟล์รูปแบบ PSD ใช้ในการสร้างภาพ อย่างไรก็ตาม อาจมีสถานการณ์เช่นการแก้ไขไฟล์ Photoshop หลายไฟล์ในบรรทัดเดียวกัน ตัวอย่างเช่น แอปพลิเคชันประมวลผลภาพถ่ายอาจต้องเพิ่มเลเยอร์ในเอกสาร Photoshop หลายชุดพร้อมกับการดำเนินการอื่นๆ Aspose.PSD for .NET API นำเสนอคุณสมบัติมากมายเพื่อทำงานกับไฟล์ PSD, PSB, AI และรูปแบบไฟล์อื่นๆ อีกมากมาย ให้เราสำรวจกรณีการใช้งานต่อไปนี้ที่เกี่ยวข้องกับการเพิ่มเลเยอร์ในไฟล์ PSD:

เพิ่ม Fill Layer ที่ Runtime ในเอกสาร Photoshop โดยใช้ C#

Aspose.PSD for .NET API รองรับการสร้างเลเยอร์เติมในไฟล์ 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

เพิ่ม Fill Layer ที่มีอยู่ในไฟล์ PSD โดยใช้ C#

เราได้เรียนรู้เกี่ยวกับการสร้างและเพิ่มชั้นเติมใหม่แล้ว ให้เราตรวจสอบวิธีการเพิ่มเลเยอร์จากไฟล์ Photoshop ที่มีอยู่ ต่อไปนี้คือความเป็นไปได้ของการเพิ่มชั้นเติมที่มีอยู่:

i) เพิ่มเลเยอร์การเติมด้วย Pattern Fill โดยใช้ C#

การเติมรูปแบบอาจมีรูปภาพ เส้น หรือเงาเพื่อเติมพื้นที่ คุณต้องทำตามขั้นตอนด้านล่างเพื่อเพิ่มเลเยอร์ด้วย Patten Fill ในภาพ 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) เพิ่มเลเยอร์การเติมด้วย Gradient Fill โดยใช้ C#

คุณยังสามารถใช้ Gradient fill เพื่อเติมเลเยอร์ใน Photoshop Document ได้อีกด้วย Aspose.PSD for .NET API รองรับการเติม Gradient ประเภทต่อไปนี้:

  • เชิงเส้น
  • เพชร
  • เรเดียล
  • สะท้อน
  • มุม

ด้านล่างนี้เป็นขั้นตอนในการเพิ่มเลเยอร์ด้วยการเติมไล่ระดับสี:

  • โหลดไฟล์ PSD ที่มา
  • เริ่มต้นคอลเลกชันของ GradientType
  • ประกาศอินสแตนซ์ของ GradientFillSettings Class
  • ระบุ 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 });
    }
}

ข้อมูลโค้ดนี้จะสร้างไฟล์ที่แตกต่างกัน 5 ไฟล์ โดยแต่ละไฟล์มีการเติม Gradient ชนิดต่างๆ กันในเลเยอร์ของไฟล์ PSD

iii) เพิ่มเลเยอร์การเติมด้วยการเติมสีโดยใช้ C#

คุณสามารถเพิ่มเลเยอร์ด้วยการเติมสีใน Photoshop Document ซึ่งเป็นไฟล์ 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 ที่มีอยู่ เลเยอร์การเติมไล่ระดับสีประเภทต่างๆ จะกล่าวถึงพร้อมกับตัวอย่างด้วย มีคุณสมบัติที่น่าตื่นเต้นอื่น ๆ อีกมากมายที่นำเสนอโดย Aspose.PSD for .NET API โปรดอย่าลังเลที่จะติดต่อเราผ่าน ฟอรัมการสนับสนุนฟรี ในกรณีที่มีข้อกังวลใดๆ

ดูสิ่งนี้ด้วย