النواة 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.layer_count قبل الفهرسة في image.layers — قد يحتوي المستند المُسطَّح على صفر طبقات.

مشكلات شائعة

مشكلةالسببإصلاح
NotSupportedException عند ضبط image_resourcesهذه الخاصية للقراءة فقط في نسخة FOSS بالرغم من وجود مُعيّناقرأ القيمة؛ لا تحاول إعادة تعيينها
قائمة image.layers فارغة في مستند مسطحis_flatten هو True ولا يحتوي المستند على طبقات مُحللةتحقق من image.layer_count (أو image.is_flatten) قبل الفهرسة إلى image.layers

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كتل موارد الصورة المُحللة (للقراءة فقط)

انظر أيضاً

 العربية