การแก้ไขปัญหา 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รายการตรวจสอบการวินิจฉัย
ก่อนเปิดเรื่องสนับสนุน, ให้ตรวจสอบรายการตรวจสอบนี้:
- ยืนยันว่าไฟล์เป็น PSD/PSB อย่างแท้จริง — a
PsdLoadExceptionเกี่ยวกับเวอร์ชันที่ไม่รองรับมักหมายความว่าไฟล์ไม่ได้เป็นเอกสาร PSD/PSB ที่แท้จริง. - ตรวจสอบสำหรับ
NotSupportedException— คุณอาจกำลังตั้งค่าหนึ่งใน 7 คุณสมบัติอ่านอย่างเดียวที่ระบุไว้ข้างต้นแทนที่จะอ่านมัน. - Verify
opacityอยู่ในช่วง 0-255, ไม่ใช่ 0.0-1.0 หรือ 0-100. - ให้ค่าข้อความไม่เกิน 255 ไบต์ ก่อนบันทึก, เพื่อหลีกเลี่ยง
PsdSaveException. - Call
image.saveหลังการแก้ไขทุกครั้ง — การเปลี่ยนแปลงของ aLayerinstance จะไม่คงอยู่จนกว่าเอกสารจะถูกบันทึก.