1. محصولات
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for Python

Aspose.PSD FOSS برای Python

کتابخانهٔ متن باز Python برای بارگذاری، بازرسی و ذخیرهٔ فایل‌های PSD/PSB با دسترسی به فرادادهٔ لایه‌ها. تحت مجوز MIT، بدون نیاز به Adobe Photoshop.

کتابخانه منبع باز Python برای فایل‌های PSD/PSB

Aspose.PSD FOSS for Python یک کتابخانهٔ آزاد، تحت مجوز MIT، خالص Python برای بارگذاری، بازرسی, و ذخیرهٔ فایل‌های Adobe Photoshop PSD و PSB بدون نیاز به Adobe Photoshop یا هر زمان‌اجرای مالکیتی است. این کتابخانه یک API سبک‌وزن، مستقل که بر 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 مراجعه کنید.

بارگذاری و بررسی فایل‌های PSD/PSB

  • Image.load(file_path) یک فایل را باز می‌کند و یک نمونه PsdImage برمی‌گرداند
  • PsdImage.width، height و channels_count ابعاد بوم و تعداد کانال‌ها را گزارش می‌دهند
  • جزئیات سرصفحه سند از حالت رنگ و متادیتای فشرده‌سازی فایل تجزیه‌شده خوانده می‌شود
  • PsdImage.layers فهرست کامل اشیاء Layer را به ترتیب سند برمی‌گرداند

اعتبارسنجی و فهرست‌گذاری فایل‌های طراحی

  • یک دسته از فایل‌های طراحی را قبل از تحویل به فرآیند پایین‌دست اعتبارسنجی کنید
  • یک فهرست دارایی سبک وزن از ابعاد و تعداد لایه‌های PSD/PSB بسازید
  • فایل‌های PSB (سند بزرگ) را که نیاز به پردازش متفاوتی نسبت به PSD استاندارد دارند شناسایی کنید

کار با لایه‌ها

  • PsdImage.layers همهٔ Layerها را به ترتیب سند برمی‌گرداند؛ هر Layer ویژگی‌های name، bounds، opacity، is_visible و blend_mode_key را افشا می‌کند
  • Layer.channel_information متادیتای کانال را برای بازرسی عمیق‌تر فراهم می‌کند
  • Layer.channels_count تعداد کانال‌های تصویری که یک لایه حمل می‌کند را گزارش می‌دهد
  • خود PsdImage.layers می‌تواند برای حذف یا تغییر ترتیب لایه‌ها مجدداً مقداردهی شود

ساختار لایه حسابرسی

  • ساختار لایه‌های یک فایل PSD را بدون باز کردن فتوشاپ بررسی کنید
  • گزارشی از نام لایه‌ها، وضعیت نمایش و حالت‌های ترکیب برای بازبینی طراحی تولید کنید
  • لایه‌های مخفی یا با شفافیت صفر که از ویرایش‌های قبلی باقی مانده‌اند را شناسایی کنید

ویرایش متادیتای لایه پایه

  • می‌توان 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 خطاهای بارگذاری/ذخیره‌سازی را با پیام‌های واضح نمایش می‌دهند
  • تمام کلاس‌ها Python خالص هستند و هیچ ماژول افزونهٔ کامپایل‌شده‌ای ندارند

تشخیص و بازرسی

  • دلیل شکست بارگذاری یک فایل PSD خاص را تشخیص دهید، با یک استثنای تایپ‌شده به جای خطای عمومی
  • بررسی کنید آیا لایه‌ای mask یا داده‌های blending-range دارد قبل از پردازش آن
  • متادیتای per-channel را برای تشخیص‌های سطح فرمت بررسی کنید

بارگذاری یک فایل PSD و بررسی لایه‌های آن

یک فایل را با 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، از جمله در محصولات تجاری.

چگونه Aspose.PSD FOSS for Python را نصب کنم؟

برای دریافت دستور نصب فعلی، بخش نصب بالا را ببینید.

کدام فرمت‌ها می‌تواند Aspose.PSD FOSS for Python بخواند و بنویسد؟

این برنامه فایل‌های PSD و PSB (سند بزرگ فوتوشاپ) را بارگیری و ذخیره می‌کند. این برنامه داده‌های پیکسل را به فرمت‌های رستر دیگر مانند PNG یا JPEG رندر یا صادرات نمی‌کند.

کلاس نقطهٔ ورود اصلی چیست؟

PsdImage (یک زیرکلاس از Image). یک سند را با PsdImage.load بارگذاری کنید، سپس مجموعه layers و ویژگی‌های هدر آن را بخوانید.

آیا می‌توانم متادیتای لایه را تغییر دهم؟

بله — Layer یک setter کارآمد برای چندین ویژگی، مانند قابلیت مشاهده و نام، ارائه می‌دهد و خود PsdImage.layers نیز یک setter کارآمد برای جایگزینی مجموعه دارد. چند ویژگی خاص (اطلاعات کانال، داده‌های ماسک، محدوده‌های ترکیب، و برخی منابع سطح-سند) فقط-خواندنی هستند در این ساختار FOSS و در صورت تنظیم، NotSupportedException را پرتاب می‌کنند.

  

منابع پشتیبانی و آموزش

 فارسی