PSD (เอกสาร Photoshop) เป็นรูปแบบไฟล์ภาพดั้งเดิมที่ใช้โดยแอปพลิเคชัน Photoshop ยอดนิยมของ Adobe โดยทั่วไปจะใช้ในการสร้างโลโก้ โบรชัวร์ และรูปภาพอื่นๆ โดยที่ไฟล์ PSD มีหลายเลเยอร์ ในบางกรณี เราอาจต้องจัดการไฟล์ PSD โดยทางโปรแกรม ในบทความนี้ เราจะเรียนรู้วิธีเพิ่มเลเยอร์ใหม่ใน PSD โดยใช้ C#
หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:
- C# API เพื่อเพิ่มเลเยอร์ใหม่ใน PSD
- เพิ่มเลเยอร์ใหม่ให้กับ PSD
- เพิ่มเลเยอร์ข้อความใหม่ใน PSD
- สร้างเลเยอร์จากรูปภาพใน PSD
C # API เพื่อเพิ่มเลเยอร์ใหม่ใน PSD
ในการสร้างเลเยอร์ใหม่ในไฟล์ PSD เราจะใช้ API Aspose.PSD for .NET รองรับการสร้าง แก้ไข หรือจัดการ PSD และ รูปแบบไฟล์ที่รองรับ อื่นๆ
คลาส PsdImage ของ API ช่วยให้โหลด แก้ไข และบันทึกไฟล์ PSD ได้ เมธอด AddRegularLayer() ของคลาสนี้จะเพิ่มเลเยอร์ปกติใหม่ ในขณะที่เมธอด AddTextLayer(string, Rectangle) จะเพิ่มเลเยอร์ข้อความใหม่ให้กับ PSD คลาสนี้ยังมีเมธอด Save(string) ที่บันทึก PSD ไปยังตำแหน่งไฟล์ที่ระบุ
โปรด ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet
PM> Install-Package Aspose.PSD
เพิ่มเลเยอร์ใหม่ให้กับ PSD โดยใช้ C#
เราสามารถเพิ่มเลเยอร์ใหม่ลงในไฟล์ PSD โดยทำตามขั้นตอนด้านล่าง:
- ขั้นแรก ให้โหลดไฟล์ PSD เป็น PsdImage โดยใช้คลาส Image
- จากนั้น เตรียมวัตถุที่จะเพิ่ม เช่น สี่เหลี่ยมผืนผ้า
- จากนั้นเรียกเมธอด AddRegularLayer()
- เลือกกำหนดตำแหน่งเลเยอร์ เช่น บน ซ้าย ขวา และล่าง
- หลังจากนั้น กำหนดวัตถุให้กับเลเยอร์โดยใช้เมธอด SaveArgb32Pixels()
- สุดท้าย บันทึกไฟล์ผลลัพธ์โดยใช้เมธอด Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มเลเยอร์ใหม่ให้กับไฟล์ PSD ใน C#
// ตัวอย่างโค้ดนี้สาธิตวิธีการสร้างเลเยอร์ใหม่ในไฟล์รูปภาพ PSD
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";
// โหลด PSD ที่มีอยู่
var im = (PsdImage)Image.Load(sourceFileName);
// กำลังเตรียมสอง int อาร์เรย์
var data1 = new int[2500];
var data2 = new int[2500];
// กำหนดรูปสี่เหลี่ยมผืนผ้า
var rect1 = new Rectangle(0, 0, 50, 50);
var rect2 = new Rectangle(0, 0, 100, 25);
for (int i = 0; i < 2500; i++)
{
data1[i] = -10000000;
data2[i] = -10000000;
}
// เพิ่มเลเยอร์ 1
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);
// เพิ่มเลเยอร์ 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);
// บันทึก PSD
im.Save(exportPath, new PsdOptions());
เพิ่มเลเยอร์ข้อความใหม่ให้กับ PSD โดยใช้ C#
เราสามารถเพิ่มเลเยอร์ข้อความใหม่ลงในไฟล์ PSD โดยทำตามขั้นตอนด้านล่าง:
- ขั้นแรก ให้โหลดไฟล์ PSD เป็น PsdImage โดยใช้คลาส Image
- ถัดไป กำหนดสี่เหลี่ยมผืนผ้า
- จากนั้นเรียกเมธอด AddTexLayer() ใช้การป้อนข้อความและวัตถุสี่เหลี่ยมผืนผ้าเป็นอาร์กิวเมนต์
- หลังจากนั้นกำหนดตำแหน่งของเลเยอร์ เช่น บน ซ้าย ขวา และล่าง
- สุดท้าย บันทึกไฟล์ผลลัพธ์โดยใช้เมธอด Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มเลเยอร์ข้อความใหม่ให้กับไฟล์ PSD ใน C#
// ตัวอย่างโค้ดนี้สาธิตวิธีการสร้างเลเยอร์ใหม่ในไฟล์รูปภาพ PSD
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";
// โหลด PSD ที่มีอยู่
var im = (PsdImage)Image.Load(sourceFileName);
// เพิ่มเลเยอร์ข้อความ
var layer1 = im.AddTextLayer("Hello", new Rectangle(0, 0, 120, 50));
layer1.Left = 10;
layer1.Top = 25;
// บันทึก PSD
im.Save(exportPath, new PsdOptions());
สร้างเลเยอร์ใหม่จากรูปภาพใน PSD โดยใช้ C#
เรายังสามารถเพิ่มเลเยอร์ใหม่จากรูปภาพ PNG หรือ JPG ลงในไฟล์ PSD โดยทำตามขั้นตอนด้านล่าง:
- ขั้นแรก ให้โหลดไฟล์ PSD เป็น PsdImage โดยใช้คลาส Image
- ถัดไป เปิดไฟล์รูปภาพ PNG ในสตรีม
- จากนั้น สร้างอินสแตนซ์ของคลาสเลเยอร์ด้วยสตรีมออบเจกต์
- หลังจากนั้นให้เรียกใช้เมธอด AddLayer() ใช้วัตถุ Layer เป็นอาร์กิวเมนต์
- สุดท้าย บันทึกไฟล์ผลลัพธ์โดยใช้เมธอด Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มเลเยอร์ใหม่จากภาพ PNG ไปยังไฟล์ PSD ใน C#
// ตัวอย่างรหัสนี้สาธิตวิธีการสร้างเลเยอร์ใหม่จากรูปภาพ PNG ในไฟล์รูปภาพ PSD
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";
// สร้างภาพ PSD ใหม่
var image = new PsdImage(200, 200);
// โหลดภาพ PNG
string filePath = @"C:\Files\PSD\aspose_logo.png";
var stream = new FileStream(filePath, FileMode.Open);
Layer layer = null;
try
{
// เพิ่มเลเยอร์ให้กับ PSD
layer = new Layer(stream);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw e;
}
// บันทึก PSD
image.Save(outputFilePath);
รับใบอนุญาตชั่วคราวฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อลองใช้ Aspose.PSD for .NET โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีการ:
- สร้างภาพ PSD ใหม่
- สร้างเลเยอร์ปกติใหม่และเลเยอร์ข้อความในรูปภาพ PSD
- แทรกรูปภาพ PNG หรือ JPG เป็นเลเยอร์ใหม่ใน PSD โดยใช้ C#
นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.PSD for .NET โดยใช้ เอกสารประกอบ และสำรวจคุณสมบัติต่างๆ ที่ API รองรับ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม