Sections

Sections

อ็อบเจ็กต์ PsdImage ที่โหลดแล้วจะเปิดเผยวัตถุสรุปแบบอ่านอย่างเดียวสำหรับส่วนโครงสร้างของเอกสาร PSD/PSB — ส่วนหัว, ส่วนข้อมูลสี, ส่วนข้อมูลภาพ, และส่วนทรัพยากรภาพ — ทั้งหมดผ่านคุณสมบัติที่มีประเภทกำหนดไว้, โดยไม่ต้องทำการแยกวิเคราะห์ระดับไบต์ด้วยตนเอง.


การตรวจสอบส่วนหัว

PsdImage.header ส่งคืน PsdHeader ที่มีฟิลด์โครงสร้างดิบของเอกสาร. PsdHeader.version คือเวอร์ชันคอนเทนเนอร์ PSD ดิบ (1 สำหรับ PSD, 2 สำหรับ PSB) — นี่เป็นคุณสมบัติที่แตกต่างจาก PsdImage.version ที่ไม่เกี่ยวข้อง, ซึ่งเป็นหมายเลขเวอร์ชัน API คงที่, ไม่ใช่ค่าฟอร์แมตไฟล์.

from aspose_psd_foss.psdimage import PsdImage

image = PsdImage.load(input_path)
header = image.header

print(f"Size: {header.width}x{header.height}, channels: {header.channels}")
print(f"Bit depth: {header.bit_depth}, raw container version: {header.version}")
print(f"Is PSB: {header.is_large_document}")

การตรวจสอบส่วนข้อมูลสี

PsdImage.color_data_info ส่งคืนสรุป PsdColorDataInfo; kind คือค่าของ PsdColorDataKind (NONE, INDEXED_PALETTE, RGB_PAYLOAD, CMYK_PAYLOAD หรือ RAW_PRESERVED).

if image.has_color_mode_data:
    color_info = image.color_data_info
    print(f"Color data kind: {color_info.kind}, raw bytes: {color_info.raw_data_length}")

การตรวจสอบส่วนข้อมูลภาพ

PsdImage.image_data_info คืนค่า PsdImageDataInfo สรุปที่อธิบายว่า ข้อมูลพิกเซลที่รวมกันถูกเข้ารหัสอย่างไร; image.compression รายงานการเข้ารหัสเดียวกันผ่าน enum CompressionMethod แยกต่างหาก.

data_info = image.image_data_info
print(f"Compression: {image.compression}, data kind: {data_info.kind}")
print(f"Uses prediction: {data_info.uses_prediction}")

ตรวจสอบส่วนทรัพยากรภาพ

PsdImage.resources, resource_count, และ has_image_resources แสดงเนื้อหาส่วนของทรัพยากรภาพ. ดู Resources สำหรับทรัพยากรทั้งหมด API.

print(f"Resource count: {image.resource_count}")

เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • PsdHeader และสรุปส่วนที่เกี่ยวข้อง (PsdColorDataInfo, ColorData, PsdImageDataInfo) ทั้งหมดเป็นแบบอ่านอย่างเดียวในรุ่น FOSS นี้ — ไม่มีตัวตั้งค่าแบบสาธารณะสำหรับคุณสมบัติใด ๆ ของพวกมัน.
  • อย่าสับสน PsdHeader.version (เวอร์ชันคอนเทนเนอร์ PSD/PSB จริง) กับ PsdImage.version (หมายเลขเวอร์ชัน API คงที่ที่ไม่มีความเกี่ยวข้องซึ่งจะต้องเป็น 6 เสมอ).
  • ตรวจสอบ image.has_color_mode_data ก่อนอ่าน color_data_info — เอกสารที่ไม่มีข้อมูลโหมดสียังคงคืนวัตถุสรุป, แต่ฟิลด์ของมันอาจไม่มีความหมาย.

ปัญหาทั่วไป

ปัญหาสาเหตุแก้ไข
header.color_mode ไม่ตรงกับ image.color_modePsdHeader.color_mode คือฟิลด์จำนวนเต็มดิบจากไฟล์; PsdImage.color_mode คือ enum ColorModes ที่กำหนดประเภทอย่างเข้มงวดซึ่งสร้างจากมันใช้ image.color_mode สำหรับค่าที่ระบุประเภท; ใช้ header.color_mode เฉพาะเมื่อคุณต้องการจำนวนเต็มดิบ
color_data_info.indexed_palette คือ Noneชนิดข้อมูลสีของเอกสารไม่ใช่ INDEXED_PALETTEเฉพาะเอกสารที่ใช้สีแบบดัชนีเท่านั้นที่มีพาเลต — ตรวจสอบ color_data_info.kind ก่อน

FAQ

ฉันสามารถแก้ไขส่วนหัว, ข้อมูลสี หรือส่วนข้อมูลรูปภาพโดยตรงได้หรือไม่?

ไม่ — PsdHeader, PsdColorDataInfo, ColorData และ PsdImageDataInfo เป็นอ็อบเจ็กต์สรุปแบบอ่านอย่างเดียวทั้งหมดในรุ่น FOSS นี้.

ความแตกต่างระหว่าง image.compression กับ image.image_data_info.kind คืออะไร?

พวกเขาอธิบายการเข้ารหัสพื้นฐานเดียวกันผ่านสอง enum แยกกัน: image.compression คืนค่า CompressionMethod, ในขณะที่ image.image_data_info.kind คืนค่า ImageDataKind.


API Reference สรุป

คลาส/เมธอดคำอธิบาย
PsdImage.headerสรุปส่วนหัวของเอกสาร (PsdHeader)
PsdImage.color_data_info / parsed_color_dataสรุปส่วนข้อมูลสี (PsdColorDataInfo / ColorData)
PsdImage.image_data_info / image_data_kind / compressionสรุปส่วนข้อมูลภาพ
PsdImage.resources / resource_count / has_image_resourcesสรุปส่วนทรัพยากรภาพ

ดูเพิ่มเติม

 ภาษาไทย