เขียนคำอธิบาย
เขียนตัวอธิบาย
PsdImage.save เป็นจุดเข้าถึงสาธารณะเดียวสำหรับการเขียนเอกสารออกใหม่ — มันรับทั้งเส้นทางไฟล์หรือสตรีมที่เปิดให้เขียนอยู่แล้ว ตัวเขียนส่วนระดับต่ำที่ทำการเข้ารหัสไบต์จริงเป็นรายละเอียดการทำงานภายใน ไม่ได้เป็นสิ่งที่คุณเรียกใช้โดยตรง.
การบันทึกไปยังเส้นทางไฟล์หรือสตรีม
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load(input_path)
image.save("output.psd")การส่งสตรีมแทนเส้นทางจะทำให้สตรีมยังคงเปิดอยู่หลังจากนั้น — คุณเป็นผู้ควบคุมว่าจะปิดเมื่อใด:
with open("output.psd", "wb") as stream:
image.save(stream)การเลือกรูปแบบคอนเทนเนอร์
ไม่มี API สาธารณะสำหรับเลือกรูปแบบคอนเทนเนอร์ของผลลัพธ์เมื่อบันทึก — การบันทึกจะสะท้อนรูปแบบใดก็ได้ที่เอกสารถูกโหลดมา (is_large_document / is_psb) เสมอ ไม่มีเส้นทางการแปลงที่รองรับระหว่าง PSD และ PSB ในรุ่น FOSS นี้.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- เรียก
saveก่อนทำลายภาพ —saveบนPsdImageที่ถูกทำลายแล้วจะทำให้เกิดRuntimeError. - ตัวเขียนระดับส่วนภายในที่ถูกเรียกโดย
saveไม่ได้เป็นจุดเข้าสำหรับการใช้งานที่ได้รับการบันทึกหรือสนับสนุนโดยตรง; ควรใช้ผ่านPsdImage.saveเสมอ.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ไข |
|---|---|---|
RuntimeError: PsdImage has been disposed. | save ถูกเรียกหลังจาก dispose() (หรือหลังจากบล็อก with สิ้นสุด) | เรียก save ก่อนทำลายภาพ |
PsdSaveException เกี่ยวกับความยาวของสตริง Pascal | ค่าสตริงเกิน 255 ไบต์ | ดู ข้อยกเว้นหลัก |
FAQ
การบันทึกลงสตรีมจะทำการปิดสตรีมหลังจากนั้นหรือไม่?
ไม่ — การส่งสตรีมไปยัง save จะทำให้สตรีมยังคงเปิดอยู่หลังจากนั้น ดังนั้นคุณจึงควบคุมวงจรชีวิตของมันได้ การบันทึกลงเส้นทางไฟล์ในทางตรงกันข้ามจะเปิดและปิดไฟล์ภายในโดยอัตโนมัติ.
ฉันสามารถสร้างไฟล์ PSB จากเอกสารที่โหลดเป็น PSD ได้หรือไม่?
ไม่ — ไม่มี API สาธารณะที่จะทำการแทนที่รูปแบบคอนเทนเนอร์เมื่อบันทึก; มันจะสะท้อนรูปแบบของเอกสารที่โหลดอยู่เสมอ.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
PsdImage.save(file_path) / PsdImage.save(stream) | บันทึกเอกสาร |