هسته API

API اصلی

PsdImage نقطه ورود برای بارگذاری، بازرسی و ذخیرهٔ اسناد PSD/PSB است. این کلاس، کلاس پایهٔ انتزاعی Image را گسترش می‌دهد که تنها load() را اعلام می‌کند — بقیهٔ سطح سند (width، height، save()، پشتیبانی از مدیر زمینه) بر روی خود PsdImage تعریف شده‌اند و ارث‌بری نمی‌شوند.


بارگذاری و ذخیرهٔ اسناد

Image.load() یک مسیر فایل یا یک جریان را می‌پذیرد و یک Image برمی‌گرداند؛ برای ورودی PSD/PSB این همیشه یک PsdImage است، بنابراین سطح سند بلافاصله بدون نیاز به تبدیل صریح در دسترس است. PsdImage همچنین از عبارت with برای پاک‌سازی خودکار پشتیبانی می‌کند، و PsdImage.save() سند را به یک مسیر فایل یا جریان بازمی‌نویسد.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load(input_path) as image:
    # ... inspect or edit ...
    image.save(output_path)

ویژگی‌های سرصفحهٔ سند

PsdImage سرصفحهٔ تجزیه‌شده را به‌صورت ویژگی‌های تایپ‌شده در دسترس می‌گذارد: width، height، bits_per_channel، color_mode، version، compression، size و is_flatten.

print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")

منابع تصویر

PsdImage.image_resources فهرست تجزیه‌شدهٔ اشیاء ResourceBlock را برمی‌گرداند. در این ساختار FOSS، image_resources، global_layer_resources، active_layer و has_transparency_data قابل خواندن هستند اما قابل بازتخصیص نیستند — متدهای تنظیم‌کنندهٔ آن‌ها NotSupportedException را پرتاب می‌کند.

for resource in image.image_resources:
    print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")

نکات و بهترین روش‌ها

  • Image.load() قبلاً یک PsdImage برای ورودی PSD/PSB برمی‌گرداند — نیازی به تبدیل (cast) نیست، بر خلاف برخی پورت‌های دیگر این کتابخانه به زبان‌های دیگر.
  • از عبارت with استفاده کنید؛ PsdImage از پروتکل مدیریت زمینه (context-manager) برای پاکسازی پشتیبانی می‌کند.
  • متغیرهای image_resources، global_layer_resources، active_layer و has_transparency_data را به‌عنوان فقط-خواندنی در نظر بگیرید حتی اگر setter ای ارائه می‌دهند.
  • قبل از دسترسی اندیس به image.layers، image.layer_count را بررسی کنید — ممکن است یک سند صاف‌شده لایه‌ای نداشته باشد.

مشکلات رایج

مشکلدلیلرفع
NotSupportedException هنگام تنظیم image_resourcesاین ویژگی در نسخه FOSS فقط-خواندنی است، علیرغم داشتن setterمقدار را بخوانید؛ سعی نکنید آن را مجدداً اختصاص دهید
لیست خالی image.layers در یک سند مسطحis_flatten True است و سند هیچ لایهٔ تجزیه‌شده‌ای نداردقبل از ایندکس کردن به image.layers، image.layer_count (یا image.is_flatten) را بررسی کنید

FAQ

آیا بارگذاری یک سند PSD داده‌های پیکسل را رمزگشایی می‌کند؟

خیر. PsdImage.load() هدر سند، فراداده لایه و منابع را بدون رمزگشایی یا رندر داده‌های پیکسل تجزیه می‌کند.

آیا می‌توانم یک فایل PSD را به فرمت تصویر دیگری تبدیل کنم؟

خیر. این کتابخانه فقط اسناد PSD/PSB را بارگذاری، بررسی و ذخیره می‌کند — داده‌های پیکسل را رندر نمی‌کند یا به فرمت‌های تصویر دیگر تبدیل نمی‌شود.


API Reference خلاصه

کلاس/متدتوضیح
Image.load(path) / Image.load(stream)یک سند PSD یا PSB را بارگذاری می‌کند
PsdImage.save(path) / PsdImage.save(stream)سند را ذخیره می‌کند
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flattenویژگی‌های سرصفحه سند
PsdImage.image_resourcesبلوک‌های منبع تصویر تجزیه‌شده (فقط-خواندنی)

همچنین ببینید:

 فارسی