1. ผลิตภัณฑ์
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for Python

Aspose.PSD FOSS สำหรับ Python

ไลบรารี Python แบบโอเพ่นซอร์สสำหรับโหลด, ตรวจสอบ, และบันทึกไฟล์ PSD/PSB พร้อมการเข้าถึงเมตาดาต้าของเลเยอร์. มีลิขสิทธิ์ MIT, ไม่ต้องใช้ Adobe Photoshop.

ไลบรารี Python แบบโอเพนซอร์สสำหรับไฟล์ PSD/PSB

Aspose.PSD FOSS for Python เป็นไลบรารี Python ฟรีที่ใช้สัญญาอนุญาต MIT สำหรับการโหลด, ตรวจสอบ, และบันทึกไฟล์ Adobe Photoshop PSD และ PSB โดยไม่ต้องการ Adobe Photoshop หรือ runtime ที่เป็นกรรมสิทธิ์ใดๆ มันเปิดเผย API ที่มีน้ำหนักเบาและเป็นอิสระซึ่งมุ่งเน้นที่ PsdImage และ Layer, ให้ Python นักพัฒนาสามารถเข้าถึงโครงสร้างของเอกสาร PSD ได้โดยโปรแกรมเมติกโดยไม่มี การพึ่งพาเนทีฟเพื่อคอมไพล์. ไลบรารีนี้อ่านขนาด, โหมดสี, ความลึกบิต, และวิธีการบีบอัดของไฟล์ PSD/PSB, และเปิดเผยทุกเลเยอร์ผ่าน PsdImage.layers: แต่ละ Layer รายงานชื่อ, ขอบเขต, ความทึบ, การมองเห็น, และคีย์โหมดผสม (BlendMode), พร้อมกับข้อมูลช่องระดับล่าง (ChannelInformation) และข้อมูลมาสก์ (LayerMaskData). ชุดย่อยของ เมตาดาต้าเลเยอร์ — ชื่อ, ขอบเขต (left/top/right/bottom), และโหมดผสม — สามารถ แก้ไขในที่เดียวและบันทึกกลับไปยังดิสก์ด้วย PsdImage.save(); ส่วนที่เหลือทั้งหมดบน พื้นผิวเป็นแบบอ่านอย่างเดียวตามการออกแบบในรุ่น FOSS นี้ Aspose.PSD FOSS for Python ใช้สัญญาอนุญาต MIT. ติดตั้งโดยใช้ pip install aspose-psd-foss — ไลบรารีนี้ไม่มีการพึ่งพาเนทีฟจากบุคคลที่สาม, มีเพียงไลบรารีมาตรฐานของ Python. สำหรับตระกูลผลิตภัณฑ์ระดับองค์กร, ดู Aspose.PSD — Enterprise Product Family.

โหลดและตรวจสอบไฟล์ PSD/PSB

  • Image.load(file_path) เปิดไฟล์และคืนค่าอินสแตนซ์ของ PsdImage
  • PsdImage.width, height และ channels_count รายงานขนาดของแคนวาสและจำนวนช่องสี
  • รายละเอียดส่วนหัวของเอกสารถูกอ่านจากโหมดสีและเมตาดาต้าการบีบอัดของไฟล์ที่วิเคราะห์
  • PsdImage.layers คืนรายการเต็มของอ็อบเจ็กต์ Layer ตามลำดับในเอกสาร

ตรวจสอบและบันทึกไฟล์การออกแบบ

  • ตรวจสอบชุดไฟล์ออกแบบก่อนส่งต่อไปยังกระบวนการถัดไป
  • สร้างแคตาล็อกสินทรัพย์ขนาดเบอร์ของมิติและจำนวนเลเยอร์ของ PSD/PSB
  • ตรวจจับไฟล์ PSB (เอกสารขนาดใหญ่) ที่ต้องการการจัดการแตกต่างจาก PSD มาตรฐาน

ทำงานกับเลเยอร์

  • PsdImage.layers คืนค่าทุก Layer ตามลำดับในเอกสาร; แต่ละ Layer เปิดเผย name, bounds, opacity, is_visible, และ blend_mode_key
  • Layer.channel_information เปิดเผยเมตาดาต้าช่องสำหรับการตรวจสอบเชิงลึก
  • Layer.channels_count รายงานจำนวนช่องภาพที่เลเยอร์มี
  • PsdImage.layers เองสามารถกำหนดค่าใหม่เพื่อเอาออกหรือจัดลำดับใหม่ของเลเยอร์ได้

โครงสร้างชั้นการตรวจสอบ

  • ตรวจสอบโครงสร้างเลเยอร์ของไฟล์ PSD โดยไม่ต้องเปิด Photoshop
  • สร้างรายงานชื่อเลเยอร์, การมองเห็น, และโหมดผสม สำหรับการตรวจทานการออกแบบ
  • ระบุเลเยอร์ที่ซ่อนหรือมีความทึบศูนย์ที่เหลือจากการแก้ไขก่อนหน้า

แก้ไขเมตาดาต้าชั้นพื้นฐาน

  • Layer.name, Layer.left/top/right/bottom, และ Layer.blend_mode_key สามารถตั้งค่าโดยตรง
  • PsdImage.save(file_path) ทำให้เอกสารที่แก้ไขแล้วถูกบันทึกกลับไปยังดิสก์
  • การโหลดไฟล์ที่บันทึกไว้ใหม่ด้วย PsdImage.load ยืนยันว่าการแก้ไขทำงานแบบราวด์-ทริปอย่างถูกต้อง
  • คุณสมบัติที่ไม่ได้ระบุข้างต้น (ข้อมูลช่อง, ข้อมูลมาสก์, ช่วงการผสม) จะทำให้เกิด NotSupportedException หากตั้งค่า — รุ่นนี้รองรับการแก้ไขแบบเมทาดาทาเท่านั้น ไม่ใช่การสร้างใหม่เต็มรูปแบบ

การแก้ไขที่เบาและสามารถสคริปต์ได้

  • เปลี่ยนชื่อเลเยอร์โดยอัตโนมัติเป็นส่วนหนึ่งของกระบวนการจัดระเบียบไฟล์อัตโนมัติ
  • ย้ายตำแหน่งหรือปรับขนาดกล่องขอบของเลเยอร์โดยไม่ใช้เครื่องมือออกแบบ
  • อัปเดตโหมดผสมเป็นกลุ่มหลายไฟล์เพื่อความสอดคล้อง

ตรวจสอบข้อมูลช่องและทรัพยากร

  • Layer.channel_information เปิดเผยคอลเลกชันเมตาดาต้าต่อช่อง
  • Layer.has_mask_data และ has_blending_ranges_data รายงานว่ามีส่วนเพิ่มเติมที่เป็นออปชันหรือไม่
  • PsdLoadException และ PsdSaveException แสดงข้อผิดพลาดการโหลด/บันทึกพร้อมข้อความที่ชัดเจน
  • คลาสทั้งหมดเป็น Python แท้โดยไม่มีโมดูลส่วนขยายที่คอมไพล์

วินิจฉัยและตรวจสอบ

  • วินิจฉัยว่าทำไมไฟล์ PSD เฉพาะไฟล์จึงโหลดไม่สำเร็จ โดยใช้ข้อยกเว้นที่ระบุประเภทแทนข้อผิดพลาดทั่วไป
  • ตรวจสอบว่าชั้นมีมาสก์หรือข้อมูลช่วงการผสมสีก่อนทำการประมวลผล
  • ตรวจสอบเมตาดาต้าต่อช่องสำหรับการวินิจฉัยระดับฟอร์แมต

โหลดไฟล์ PSD และตรวจสอบเลเยอร์ของมัน

โหลดไฟล์ด้วย Image.load เพื่อให้ได้อินสแตนซ์ PsdImage สำหรับสมาชิกเฉพาะของ PSD.

from aspose_psd_foss.image import Image
with Image.load("test.psd") as image:
    print(f"Width: {image.width}, Channels: {image.channels_count}, Layers: {len(image.layers)}")

แก้ไขขอบเขตของเลเยอร์และโหมดผสม, แล้วบันทึก

ขอบเขตของเลเยอร์และโหมดการผสมสามารถเปลี่ยนแปลงในที่เดียวและบันทึกกลับไปยังดิสก์ได้.

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

with PsdImage.load("test.psd") as image:
    image.layers[0].left = 10
    image.layers[0].top = 20
    image.layers[0].right = 40
    image.layers[0].bottom = 60
    image.layers[0].blend_mode_key = BlendMode.MULTIPLY
    image.save("edited.psd")

with PsdImage.load("edited.psd") as reloaded:
    print(f"Bounds: {reloaded.layers[0].bounds}, BlendMode: {reloaded.layers[0].blend_mode_key}")

อ่านข้อมูลช่อง (อ่านอย่างเดียว)

ข้อมูลช่องสามารถอ่านได้แต่ไม่สามารถกำหนดค่าใหม่ได้ — การพยายามตั้งค่าจะทำให้เกิด NotSupportedException.

from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("test.psd") as image:
    layer = image.layers[0]
    channel_information = layer.channel_information
    print(f"Channel count: {layer.channels_count}, first channel: `NotSupportedException`")
    # layer.channel_information = channel_information  # raises NotSupportedException

คำถามที่พบบ่อย

โมเดลการให้สิทธิ์การใช้งานคืออะไร?

Aspose.PSD FOSS for Python มีสัญญาอนุญาตแบบ MIT. คุณสามารถใช้, แก้ไข, และแจกจ่ายต่อภายใต้เงื่อนไขของสัญญาอนุญาต MIT, รวมถึงในผลิตภัณฑ์เชิงพาณิชย์.

ฉันจะติดตั้ง Aspose.PSD FOSS for Python อย่างไร?

ดูส่วนการติดตั้งด้านบนสำหรับคำสั่งติดตั้งปัจจุบัน.

Aspose.PSD FOSS for Python สามารถอ่านและเขียนรูปแบบใดได้บ้าง?

มันโหลดและบันทึกไฟล์ PSD และ PSB (Photoshop large document) ได้ แต่ไม่ได้ทำการเรนเดอร์หรือส่งออกข้อมูลพิกเซลไปยังรูปแบบแรสเตอร์อื่น ๆ เช่น PNG หรือ JPEG.

คลาสหลักที่เป็นจุดเริ่มต้นคืออะไร?

PsdImage (เป็นคลาสย่อยของ Image). โหลดเอกสารด้วย PsdImage.load จากนั้นอ่านคอลเลกชัน layers และคุณสมบัติส่วนหัว.

ฉันสามารถแก้ไขเมตาดาต้าของเลเยอร์ได้หรือไม่?

ใช่ — Layer เปิดเผยตัวตั้งค่าที่ทำงานได้สำหรับหลายคุณสมบัติ เช่น การมองเห็นและชื่อ, และ PsdImage.layers เองมีตัวตั้งค่าที่ทำงานได้สำหรับการแทนที่คอลเลกชัน. คุณสมบัติบางอย่างที่เฉพาะเจาะจง (ข้อมูลช่อง, ข้อมูลมาสก์, ช่วงการผสม, และทรัพยากรระดับเอกสารบางส่วน) เป็นแบบอ่านอย่างเดียวในรุ่น FOSS นี้และจะทำให้เกิด NotSupportedException หากตั้งค่า.

  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย