บทนำ
Aspose.PSD FOSS for .NET เป็นไลบรารีโอเพนซอร์สใหม่สำหรับทำงานกับไฟล์ PSD และ PSB (Photoshop large document) จากโค้ด .NET. ไลบรารีนี้เผยแพร่ภายใต้สัญญาอนุญาต MIT, ต้องการเพียง .NET 10.0 ในเวลารันไทม์, และไม่มีการพึ่งพาจากบุคคลที่สามอื่นใด. แพ็กเกจจะถูกนำเข้าโดยใช้ using Aspose.PSD.FOSS;.
ไลบรารีนี้จัดโครงสร้างรอบคลาส PsdImage, ซึ่งสืบทอดจากคลาสฐานแบบนามธรรม Image, และคลาส Layer. Image.Load() / PsdImage.Load() โหลดเอกสารจากเส้นทางไฟล์หรือสตรีม, เปิดเผยข้อมูลส่วนหัว (Width, Height, ColorMode, Version, Compression) และคอลเลกชัน Layers ที่แยกวิเคราะห์; PsdImage.Save() เขียนเอกสารออกไปยังไฟล์หรือสตรีม. แต่ละ Layer เปิดเผยเมตาดาต้าของตนเอง — Name, Bounds, IsVisible, Opacity, Clipping, BlendModeKey, และข้อมูลช่อง/มาสก์ — และส่วนย่อยของคุณสมบัติเหล่านี้สามารถเปลี่ยนได้ในที่เดียวและบันทึกกลับไปยังไฟล์.
รุ่นนี้ออกสำหรับนักพัฒนาที่ต้องการตรวจสอบหรือทำการแก้ไขเมตาดาต้าอย่างจำกัดในไฟล์ PSD/PSB ภายในฐานโค้ด .NET โดยไม่มีใบอนุญาตเชิงพาณิชย์ — เครื่องมือ asset-pipeline ที่รายงานโครงสร้างเลเยอร์, สคริปต์การสร้างที่เปลี่ยนชื่อหรือสลับการมองเห็นของเลเยอร์ก่อนการส่งต่อ, หรือฟิกซ์เจอร์การทดสอบที่ต้องอ่านส่วนหัว PSD และข้อมูลเลเยอร์โดยไม่ต้องใช้เอนจินการเรนเดอร์เต็มรูปแบบ. ไลบรารีนี้ไม่ทำการเรนเดอร์ข้อมูลพิกเซลหรือแปลง PSD/PSB ไปเป็นรูปแบบภาพอื่น — มันเป็นตัวอ่าน/เขียนที่มุ่งเน้นเมตาดาต้าสำหรับรูปแบบคอนเทนเนอร์ PSD/PSB.
สิ่งที่รวมอยู่
การตรวจสอบเอกสาร
PsdImage.Load() แยกวิเคราะห์ส่วนหัวของไฟล์ PSD หรือ PSB ไปเป็นคุณสมบัติมีชนิด — Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size, และ IsFlatten — โดยไม่ต้องถอดรหัสข้อมูลพิกเซล.
using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Layers: {image.Layers.Length}, Compression: {image.Compression}");
เมทาดาต้าเลเยอร์
แต่ละรายการใน PsdImage.Layers คือ Layer ที่เปิดเผยขอบเขต การมองเห็น ความทึบแสง การคลิป และเมทาดาต้าโหมดผสมของมันเอง.
foreach (var layer in image.Layers)
{
Console.WriteLine($"{layer.Name}: {layer.Bounds}, Visible={layer.IsVisible}, Opacity={layer.Opacity}");
}
การแก้ไขเมทาดาต้าที่รองรับ
ส่วนย่อยของคุณสมบัติเพลเยอร์สามารถเปลี่ยนแปลงในที่เดียวและเขียนกลับด้วย PsdImage.Save(): ชื่อ, การมองเห็น, ความทึบแสง, การคลิป, คีย์โหมดผสม, และสี่ขอบของขอบเขต.
Layer layer = image.Layers[0];
layer.Name = $"{layer.Name} (edited)";
layer.IsVisible = !layer.IsVisible;
layer.Opacity = 128;
layer.BlendModeKey = BlendMode.Multiply;
image.Save(outputPath);
เริ่มต้นอย่างรวดเร็ว
ติดตั้งแพคเกจ, จากนั้นโหลดไฟล์ PSD หรือ PSB, ตรวจสอบเลเยอร์ของมัน, และบันทึกออกมาใหม่:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildusing Aspose.PSD.FileFormats.Psd;
using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}, Layers: {image.Layers.Length}");
foreach (var layer in image.Layers)
{
Console.WriteLine($" {layer.Name}: {layer.Bounds}");
}
image.Save("output.psd");
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| เอกสาร Photoshop | psd | ✓ | ✓ |
| เอกสาร Photoshop ขนาดใหญ่ | psb | ✓ | ✓ |
โอเพนซอร์ส & การให้สิทธิ์
Aspose.PSD FOSS สำหรับ .NET มีสัญญาอนุญาตแบบ MIT และสามารถใช้ในผลิตภัณฑ์เชิงพาณิชย์ได้โดยไม่มีค่าลิขสิทธิ์, ไม่มีลายน้ำการประเมินหรือขีดจำกัดการใช้งาน.
แพ็คเกจนี้อยู่ที่เวอร์ชัน 1.0.0 และต้องการเพียง .NET 10.0 ในขณะทำงาน — ไม่มีการพึ่งพาจากบุคคลที่สามอื่นใด.