บทนำ
Aspose.PSD FOSS สำหรับ Python เป็นไลบรารีโอเพ่นซอร์สใหม่สำหรับการทำงานกับไฟล์ PSD และ PSB (เอกสารขนาดใหญ่ของ Photoshop) จากโค้ด Python มันถูกปล่อยภายใต้สัญญาอนุญาต MIT, ไม่มีการพึ่งพาไลบรารีเนทีฟของบุคคลที่สาม และต้องการเพียงไลบรารีมาตรฐาน Python ในเวลารัน แพ็คเกจจะถูกนำเข้าโดยใช้ชื่อ aspose_psd_foss.
ไลบรารีนี้จัดโครงสร้างรอบคลาส PsdImage ซึ่งสืบทอดจากคลาสฐานแบบนามธรรม Image และคลาส Layer Image.load() / PsdImage.load() โหลดเอกสารจากเส้นทางไฟล์หรือสตรีม, เปิดเผยข้อมูลส่วนหัว (width, height, color_mode, version, compression) และคอลเลกชัน layers ที่แยกวิเคราะห์; PsdImage.save() เขียนเอกสารกลับออกไปยังไฟล์หรือสตรีม ทั้งสองคลาสสนับสนุนคำสั่ง with เพื่อทำความสะอาดอัตโนมัติ แต่ละ Layer แสดงเมตาดาต้าของตนเอง — name, bounds, is_visible, opacity, clipping, blend_mode_key, และข้อมูลช่อง/มาสก์ — และส่วนหนึ่งของคุณสมบัติเหล่านี้สามารถเปลี่ยนได้ในที่เดียวและบันทึกกลับไปยังไฟล์.
การปล่อยเวอร์ชันนี้มุ่งเน้นไปที่นักพัฒนาที่ต้องการตรวจสอบหรือทำการแก้ไขเมตาดาต้าอย่างจำกัดในไฟล์ PSD/PSB ภายในโค้ดเบส Python โดยไม่ต้องมีใบอนุญาตเชิงพาณิชย์ — เครื่องมือ asset-pipeline ที่รายงานโครงสร้างเลเยอร์, สคริปต์การสร้างที่เปลี่ยนชื่อหรือสลับการมองเห็นของเลเยอร์ก่อนส่งต่อ, หรือฟิกเจอร์ทดสอบที่ต้องอ่านส่วนหัว PSD และข้อมูลเลเยอร์โดยไม่ต้องใช้เอนจินการเรนเดอร์เต็มรูปแบบ ไลบรารีนี้ไม่ทำการเรนเดอร์ข้อมูลพิกเซลหรือแปลง PSD/PSB ไปเป็นรูปแบบภาพอื่น — มันเป็นตัวอ่าน/เขียนที่มุ่งเน้นเมตาดาต้าสำหรับรูปแบบคอนเทนเนอร์ PSD/PSB.
สิ่งที่รวมอยู่
การตรวจสอบเอกสาร
PsdImage.load() แยกส่วนหัวของไฟล์ PSD หรือ PSB เป็นคุณสมบัติที่มีชนิดกำหนด — width, height, bits_per_channel, color_mode, version, compression, size, และ is_flatten — โดยไม่ต้องถอดรหัสข้อมูลพิกเซล.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Layers: {image.layer_count}, Compression: {image.compression}")
ข้อมูลเมตาเลเยอร์
แต่ละรายการใน PsdImage.layers เป็น Layer ที่เปิดเผยขอบเขต การมองเห็น ความทึบแสง การคลิป และเมตาดาต้าโหมดผสมของมันเอง.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
for layer in image.layers:
print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")
การแก้ไขเมตาดาต้าที่รองรับ
ส่วนย่อยของคุณสมบัติของเลเยอร์สามารถเปลี่ยนแปลงได้โดยตรงและเขียนกลับด้วย PsdImage.save(): ชื่อ, การมองเห็น, ความทึบแสง, การคลิป, คีย์โหมดผสม, และขอบของขอบเขตสี่ด้าน.
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("input.psd") as image:
layer = image.layers[0]
layer.name = f"{layer.name} (edited)"
layer.is_visible = not layer.is_visible
layer.opacity = 128
layer.blend_mode_key = BlendMode.MULTIPLY
image.save("output.psd")
เริ่มต้นอย่างรวดเร็ว
ติดตั้งแพ็กเกจ, จากนั้นโหลดไฟล์ PSD หรือ PSB, ตรวจสอบเลเยอร์ของมัน, และบันทึกออกมาใหม่:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATHfrom aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")
for layer in image.layers:
print(f" {layer.name}: {layer.bounds}")
image.save("output.psd")
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
ซอร์สเปิด & ใบอนุญาต
Aspose.PSD FOSS สำหรับ Python ได้รับใบอนุญาตแบบ MIT และสามารถใช้ในผลิตภัณฑ์เชิงพาณิชย์ได้โดยไม่มีค่าโรเยลส์, ไม่มีลายน้ำการประเมินหรือข้อจำกัดการใช้งาน.
ไลบรารีนี้ไม่มีการพึ่งพาเนทีฟจากบุคคลที่สามเลย — จำเป็นต้องใช้เฉพาะไลบรารีมาตรฐานของ Python เท่านั้นในช่วงรันไทม์.