คอร์ 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บล็อกทรัพยากรภาพที่ประมวลผล (อ่านอย่างเดียว)

ดูเพิ่มเติม

 ภาษาไทย