การแก้ไขปัญหา Aspose.PSD FOSS for .NET

การแก้ไขปัญหา Aspose.PSD FOSS for .NET

การแก้ไขปัญหา Aspose.PSD FOSS สำหรับ .NET

หน้านี้ครอบคลุมปัญหาที่พบบ่อยที่สุดที่พบเมื่อทำการโหลด, ตรวจสอบ, และบันทึกเอกสาร PSD/PSB ด้วย Aspose.PSD FOSS สำหรับ .NET.


ปัญหาในการโหลด

PsdLoadException พร้อมข้อความเกี่ยวกับเวอร์ชันที่ไม่รองรับ

ฟิลด์เวอร์ชัน PSD ที่ระบุในไฟล์ไม่ใช่ค่า PSD มาตรฐานหรือค่า PSB สำหรับเอกสารขนาดใหญ่. กรุณายืนยันว่าไฟล์เป็นเอกสาร PSD/PSB ที่แท้จริงและไม่เสียหายก่อนทำการโหลด:

try
{
    using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
    Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}

PsdLoadException เกี่ยวกับความยาวส่วนที่เกินขอบเขต

ฟิลด์ความยาวภายในของไฟล์ไม่สอดคล้องกับขนาดจริง — สิ่งนี้มักหมายความว่าไฟล์ถูกตัดหรือเสียหาย, ไม่ได้หมายความว่าไฟล์ใช้โครงสร้างที่ไม่รองรับแต่โดยทั่วไปยังถูกต้อง. ส่งออกไฟล์ใหม่จากแอปพลิเคชันต้นทางและลองอีกครั้ง.


ปัญหาในการบันทึก

PsdSaveException เกี่ยวกับความยาวของสตริง Pascal

ค่าสตริง — ส่วนใหญ่เป็นชื่อเลเยอร์หรือทรัพยากร — มีขนาดเกิน 255 ไบต์ ซึ่งเป็นขนาดสูงสุดที่ฟิลด์สตริง Pascal ของ PSD สามารถเข้ารหัสได้:

layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");

ปัญหาในการแก้ไข

NotSupportedException ขณะตั้งค่าคุณสมบัติ

คุณสมบัติบางอย่างเป็นแบบอ่านอย่างเดียวในรุ่น FOSS นี้ บน PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. บน Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. ปฏิบัติเหล่านี้เป็นแบบรับอย่างเดียว — อย่าพยายามกำหนดค่าให้กับมัน.

ความทึบของเลเยอร์ดูผิดพลาดหลังจากตั้งค่า

Layer.Opacity เป็น byte ในช่วง 0-255 ไม่ใช่เศษส่วน 0.0-1.0 หรือเปอร์เซ็นต์:

layer.Opacity = 200; // approximately 78% opaque, not 200%

การลบชั้นไม่เกิดผล

PsdImage.Layers มีตัวตั้งค่าที่ทำงานได้ระดับคอลเลกชัน แต่สมาชิกอาเรย์แต่ละตัวไม่สามารถลบได้โดยตรง — ให้กำหนดค่าใหม่ให้กับอาเรย์ที่กรองทั้งหมด:

image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();

ปัญหาในการติดตั้ง

ไม่พบแพคเกจ

ยืนยันตัวตนที่แน่นอนของแพคเกจ:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build

รายการตรวจสอบการวินิจฉัย

ก่อนเปิดเรื่องสนับสนุน ให้ทำตามรายการตรวจสอบนี้:

  1. ยืนยันว่าไฟล์เป็น PSD/PSB อย่างแท้จริง — a PsdLoadException เกี่ยวกับเวอร์ชันที่ไม่รองรับมักหมายความว่าไฟล์ไม่ได้เป็นเอกสาร PSD/PSB ที่แท้จริง.
  2. ตรวจสอบว่า NotSupportedException — คุณอาจกำลังตั้งค่าหนึ่งใน 7 คุณสมบัติอ่านอย่างเดียวที่ระบุไว้ข้างต้นแทนที่จะอ่านมัน.
  3. Verify Opacity อยู่ในช่วง 0-255, ไม่ใช่ 0.0-1.0 หรือ 0-100.
  4. เก็บค่า string ให้ไม่เกิน 255 ไบต์ ก่อนบันทึก, เพื่อหลีกเลี่ยง PsdSaveException.
  5. Call image.Save หลังจากการแก้ไขทุกครั้ง — การเปลี่ยนแปลงต่อ Layer อินสแตนซ์จะไม่คงอยู่จนกว่าเอกสารจะถูกบันทึก.

ดูเพิ่มเติม

 ภาษาไทย