چگونه با Aspose.PSD FOSS Core API در Python کار کنیم

چگونه با Aspose.PSD FOSS Core API در Python کار کنیم

Aspose.PSD FOSS برای Python، ساختار سند PSD/PSB را از طریق PsdImage، یک زیرکلاس از Image، بارگذاری و بررسی می‌کند. این مقاله به بارگذاری یک سند، خواندن هدر و منابع تصویر آن، و ذخیره‌سازی مجدد آن بر روی دیسک می‌پردازد.

راهنمای گام به گام

مرحله 1: نصب بسته

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

مرحله 2: وارد کردن کلاس‌های مورد نیاز

PsdImage نقطه ورودی است که در سراسر این راهنما استفاده می‌شود:

from aspose_psd_foss.psdimage import PsdImage

مرحله ۳: بارگذاری یک سند PSD/PSB

PsdImage.load() یک سند را از مسیر فایل یا یک جریان باز می‌کند:

from aspose_psd_foss.psdimage import PsdImage

image = PsdImage.load("input.psd")

مرحله ۴: بررسی سرصفحه سند

PsdImage فیلدهای سرصفحه‌ای را که از سند تجزیه‌شده خوانده شده‌اند، نشان می‌دهد: width، height، bits_per_channel، color_mode (یک مقدار ColorModes)، و compression (یک مقدار CompressionMethod):

print(f"{image.width}x{image.height}, {image.bits_per_channel} bpc")
print(f"Color mode: {image.color_mode}")    # e.g. ColorModes.RGB
print(f"Compression: {image.compression}")  # e.g. CompressionMethod.RLE
print(f"Flattened: {image.is_flatten}")

مقادیر ColorModes عبارتند از BITMAP، GRAYSCALE، INDEXED، RGB، CMYK، MULTICHANNEL، DUOTONE و LAB. مقادیر CompressionMethod عبارتند از RAW، RLE، ZIP_WITHOUT_PREDICTION و ZIP_WITH_PREDICTION.


مرحله ۵: خواندن بلوک‌های منبع تصویر

image_resources ورودی‌های ResourceBlock تجزیه‌شده سند را برمی‌گرداند. هر بلوک id، name و size را نشان می‌دهد:

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

image_resources در این ساختار FOSS فقط-خواندنی است — اختصاص مقدار به آن خطا ایجاد می‌کند NotSupportedException (به محدودیت‌های شناخته‌شده در FAQ).


مرحله ۶: ذخیره‌سازی سند

سند را دوباره روی دیسک بنویسید، سپس منابع تصویر را آزاد کنید:

image.save("output.psd")
image.dispose()

مشکلات رایج و راه‌حل‌ها

PsdLoadException هنگام بارگذاری یک فایل. ورودی یک سند معتبر PSD/PSB نیست، یا سرآیند آن اعتبارسنجی را پاس نکرده است. قبل از بارگذاری، تأیید کنید که فایل یک فایل واقعی PSD/PSB است.

NotSupportedException هنگام تنظیم image_resources or global_layer_resources. این تنظیم‌کننده‌ها در این ساختار FOSS پشتیبانی نمی‌شوند. در نظر بگیرید image_resources به عنوان فقط-خواندنی.

سوالات متداول

آیا می‌توانم یک فایل PSD را از یک جریان (stream) به‌جای مسیر فایل بارگذاری کنم؟

بله — PsdImage.load() یک رشته مسیر فایل یا یک جریان قابل خواندن (io.BytesIO/io.BufferedIOBase) را می‌پذیرد.

آیا image_resources شامل داده‌های لایه است؟

خیر. image_resources بلوک‌های منابع در سطح سند را نگه می‌دارد (از بخش منابع تصویر PSD تجزیه شده). داده‌های سطح لایه از طریق PsdImage.layers — ببینید کار با لایه‌ها.

آیا PsdImage.version نسخه فرمت فایل PSD است؟

نه. PsdImage.version شماره نسخه API سازگار با Aspose.PSD داخلی را گزارش می‌دهد (در حال حاضر 6) — این مورد ارتباطی با این ندارد که فایل بارگذاری‌شده PSD است یا PSB. تنظیم‌کنندهٔ آن فقط مقدار 6 را می‌پذیرد؛ هر مقدار دیگری باعث بروز ValueError می‌شود.

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

 فارسی