คอร์ API
API หลัก
PsdImage เป็นจุดเริ่มต้นสำหรับการโหลด, ตรวจสอบ, และบันทึกเอกสาร PSD/PSB. มันสืบทอดจากคลาสฐานแบบนามธรรม Image, ซึ่งประกาศเพียง load() — ส่วนที่เหลือของพื้นผิวเอกสาร (width, height, save(), การสนับสนุน context-manager) ถูกกำหนดบน PsdImage เอง, ไม่ได้สืบทอด.
การโหลดและบันทึกเอกสาร
Image.load() รับพาธไฟล์หรือสตรีมและคืนค่า Image; สำหรับอินพุต PSD/PSB ค่านี้จะเป็นเสมอ PsdImage, ดังนั้นพื้นผิวเอกสารจะพร้อมใช้งานทันทีโดยไม่ต้องแคสต์อย่างชัดเจน. PsdImage ยังรองรับคำสั่ง with สำหรับทำความสะอาดอัตโนมัติ, และ PsdImage.save() จะเขียนเอกสารกลับออกไปยังพาธไฟล์หรือสตรีม.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)คุณสมบัติส่วนหัวของเอกสาร
PsdImage เปิดเผยส่วนหัวที่แยกวิเคราะห์เป็นคุณสมบัติที่กำหนดประเภท: width, height, bits_per_channel, color_mode, version, compression, size, และ is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")ทรัพยากรภาพ
PsdImage.image_resources คืนค่ารายการที่แยกวิเคราะห์ของอ็อบเจ็กต์ ResourceBlock. ในการสร้าง FOSS นี้, image_resources, global_layer_resources, active_layer, และ has_transparency_data สามารถอ่านได้แต่ไม่สามารถกำหนดค่าใหม่ — ตัวตั้งค่า (setter) ของพวกมันจะทำให้เกิด NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
Image.load()มีการคืนค่าPsdImageสำหรับข้อมูล PSD/PSB — ไม่จำเป็นต้องแคสต์, แตกต่างจากพอร์ตภาษาอื่นของไลบรารีนี้.- ใช้คำสั่ง
with;PsdImageรองรับโปรโตคอล context-manager สำหรับการทำความสะอาด. - ถือว่า
image_resources,global_layer_resources,active_layerและhas_transparency_dataเป็นแบบอ่านอย่างเดียว แม้ว่าจะมีการเปิดเผย setter. - ตรวจสอบ
image.layer_countก่อนทำดัชนีเข้าสู่image.layers— เอกสารที่แบนอาจไม่มีเลเยอร์.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ไข |
|---|---|---|
NotSupportedException ขณะตั้งค่า image_resources | คุณสมบัตินี้เป็นแบบอ่านอย่างเดียวในรุ่น FOSS แม้จะมี setter | อ่านค่านั้น; อย่าพยายามกำหนดค่าใหม่ |
รายการ image.layers ว่างบนเอกสารที่แบน | is_flatten เป็น True และเอกสารไม่มี parsed layers | ตรวจสอบ image.layer_count (หรือ image.is_flatten) ก่อนทำดัชนีเข้าสู่ image.layers |
FAQ
การโหลดเอกสาร PSD จะทำการถอดรหัสข้อมูลพิกเซลหรือไม่?
ไม่, PsdImage.load() ทำการแยกวิเคราะห์ส่วนหัวของเอกสาร, เมตาดาต้าเลเยอร์, และทรัพยากรโดยไม่ถอดรหัสหรือเรนเดอร์ข้อมูลพิกเซล.
ฉันสามารถแปลงไฟล์ PSD เป็นรูปแบบภาพอื่นได้ไหม?
ไม่. ไลบรารีนี้โหลด, ตรวจสอบและบันทึกเอกสาร PSD/PSB เท่านั้น — มันไม่ทำการเรนเดอร์ข้อมูลพิกเซลหรือแปลงเป็นรูปแบบภาพอื่น.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
Image.load(path) / Image.load(stream) | โหลดเอกสาร PSD หรือ PSB |
PsdImage.save(path) / PsdImage.save(stream) | บันทึกเอกสาร |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | คุณสมบัติส่วนหัวของเอกสาร |
PsdImage.image_resources | บล็อกทรัพยากรภาพที่ประมวลผล (อ่านอย่างเดียว) |