مقدمه

Aspose.PSD FOSS برای Python یک کتابخانهٔ متن‌باز جدید برای کار با فایل‌های PSD و PSB (سند بزرگ فتوشاپ) از کد 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 بدون داشتن لایسنس تجاری بررسی یا ویرایش‌های محدودی اعمال کنند — ابزارهای خط لولهٔ دارایی که ساختار لایه‌ها را گزارش می‌دهند، اسکریپت‌های ساخت که قبل از تحویل نام لایه‌ها را تغییر یا نمایش آن‌ها را فعال/غیرفعال می‌کنند، یا مجموعه‌های تست که نیاز دارند سرصفحهٔ 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:$PYTHONPATH
from 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")

فرمت‌های پشتیبانی‌شده

قالبپسوندخواندننوشتن
PSDpsd✓✓
PSBpsb✓✓

منبع باز و مجوزدهی

Aspose.PSD FOSS برای Python تحت مجوز MIT است و می‌تواند در محصولات تجاری بدون حق‌الزحمه استفاده شود، بدون هیچ علامت ارزیابی یا محدودیت استفاده.

این کتابخانه هیچ وابستگی بومی شخص ثالثی ندارد — فقط کتابخانه استاندارد Python در زمان اجرا مورد نیاز است.


شروع کار

منابع مرتبط