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

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

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

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


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

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

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

try:
    image = PsdImage.load("input.psd")
except PsdLoadException as ex:
    print(f"Not a valid PSD/PSB file: {ex}")

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

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


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

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

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

layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")

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

NotSupportedException เมื่อกำหนดค่าคุณสมบัติ

คุณสมบัติบางอย่างเป็นแบบอ่านอย่างเดียวในรุ่น FOSS นี้ บน PsdImage: active_layer, image_resources, global_layer_resources, has_transparency_data. บน Layer: channel_information, layer_mask_data, layer_blending_ranges_data. ปฏิบัติเหล่านี้เป็นแบบอ่านอย่างเดียว — อย่ากำหนดค่าให้กับมัน.

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

Layer.opacity โดยทั่วไปเป็นค่าช่วง 0-255 ไม่ใช่เศษส่วน 0.0-1.0 หรือเปอร์เซ็นต์:

layer.opacity = 200  # approximately 78% opaque, not 200%

การลบเลเยอร์ไม่ได้ผล

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

image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]

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

ไม่พบแพ็กเกจ

ยืนยันตัวตนของแพ็กเกจอย่างแม่นยำ:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATH

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

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

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

ดูเพิ่มเติม

 ภาษาไทย