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.Image.load(file_path) เปิดไฟล์และคืนค่าอินสแตนซ์ของ PsdImagePsdImage.width, height และ channels_count รายงานขนาดของแคนวาสและจำนวนช่องสีPsdImage.layers คืนรายการเต็มของอ็อบเจ็กต์ Layer ตามลำดับในเอกสารPsdImage.layers คืนค่าทุก Layer ตามลำดับในเอกสาร; แต่ละ Layer เปิดเผย name, bounds, opacity, is_visible, และ blend_mode_keyLayer.channel_information เปิดเผยเมตาดาต้าช่องสำหรับการตรวจสอบเชิงลึกLayer.channels_count รายงานจำนวนช่องภาพที่เลเยอร์มีPsdImage.layers เองสามารถกำหนดค่าใหม่เพื่อเอาออกหรือจัดลำดับใหม่ของเลเยอร์ได้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 แสดงข้อผิดพลาดการโหลด/บันทึกพร้อมข้อความที่ชัดเจนโหลดไฟล์ด้วย 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, รวมถึงในผลิตภัณฑ์เชิงพาณิชย์.
ดูส่วนการติดตั้งด้านบนสำหรับคำสั่งติดตั้งปัจจุบัน.
มันโหลดและบันทึกไฟล์ PSD และ PSB (Photoshop large document) ได้ แต่ไม่ได้ทำการเรนเดอร์หรือส่งออกข้อมูลพิกเซลไปยังรูปแบบแรสเตอร์อื่น ๆ เช่น PNG หรือ JPEG.
PsdImage (เป็นคลาสย่อยของ Image). โหลดเอกสารด้วย PsdImage.load จากนั้นอ่านคอลเลกชัน layers และคุณสมบัติส่วนหัว.
ใช่ — Layer เปิดเผยตัวตั้งค่าที่ทำงานได้สำหรับหลายคุณสมบัติ เช่น การมองเห็นและชื่อ, และ PsdImage.layers เองมีตัวตั้งค่าที่ทำงานได้สำหรับการแทนที่คอลเลกชัน. คุณสมบัติบางอย่างที่เฉพาะเจาะจง (ข้อมูลช่อง, ข้อมูลมาสก์, ช่วงการผสม, และทรัพยากรระดับเอกสารบางส่วน) เป็นแบบอ่านอย่างเดียวในรุ่น FOSS นี้และจะทำให้เกิด NotSupportedException หากตั้งค่า.