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