Resources
Resources
يُظهر PsdImage المُحمَّل كتل موارد الصورة الخاصة به — إدخالات على نمط البيانات الوصفية مثل الشبكات، الأدلة، وحمولات ملف تعريف ICC — من خلال وجهتين للقراءة فقط، بالإضافة إلى ملخص منفصل لدفاتر ألوان مُفهرسة.
قائمة كتل الموارد
يُعيد PsdImage.image_resources PreservedResourceBlock لكل مورد، مع معرف المورد الخام والاسم وحجم البايت:
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.resources.imageresourceids import ImageResourceIds
image = PsdImage.load(input_path)
for block in image.image_resources:
print(f"ID: {block.id}, name: {block.name!r}, size: {block.size} bytes")بدلاً من ذلك، يُعيد PsdImage.resources ملخص PsdResourceInfo منفصل لكل مورد، مضيفًا تصنيف kind — في هذا البناء المفتوح المصدر kind يكون دائمًا PsdResourceKind.UNKNOWN، لأن محلل الموارد في هذا البناء لا يقوم بفك تشفير معرفات الموارد المحددة إلى خصائص دلالية.
التعرف على معرفات الموارد المعروفة
نظرًا لأن kind غير مُحلَّ بشكل دلالي، قم بالتعرف على مورد محدد بمقارنة block.id مع الثوابت في ImageResourceIds:
for block in image.image_resources:
if block.id == ImageResourceIds.ICC_PROFILE:
print(f"Found an ICC profile resource ({block.data_size} bytes)")قراءة لوحة ألوان مفهرسة
إذا كانت بيانات اللون في المستند مبنية على لوحة ألوان، فإن PsdImage.indexed_palette ترجع مدخلاتها:
palette = image.indexed_palette
if palette is not None:
print(f"Palette entries: {len(palette.entries)}")نصائح وأفضل الممارسات
- المستخرج
PsdImage.image_resourcesيعمل على سرد الموارد، لكن الـsetter يرفعNotSupportedException— الموارد للقراءة فقط في هذا الإصدار المفتوح المصدر. PsdImage.has_icc_profile،is_icc_profile_untagged، وglobal_angleهي قيم نائبة ثابتة في هذا الإصدار المفتوح المصدر (دائمًاFalse،None، و0على التوالي) بغض النظر عن المحتوى الفعلي للمستند المحمّل — استخدم نمط مقارنة معرف المورد أعلاه إذا كنت بحاجة إلى اكتشاف هذه الموارد بنفسك.PreservedResourceBlock.save()يرفعNotImplementedErrorإذا تم استدعاؤه مباشرةً — الموارد تتنقل ذهابًا وإيابًا تلقائيًا عندما تستدعيimage.save()على المستند بأكمله.
مشكلات شائعة
| المشكلة | السبب | الإصلاح |
|---|---|---|
image.indexed_palette هو None | نوع بيانات اللون للوثيقة ليس INDEXED_PALETTE | فقط المستندات ذات اللون المفهرس تحمل لوحة ألوان |
NotSupportedException إعداد image.image_resources | المُعَيِّن غير مدعوم في هذا بناء FOSS | عامل image_resources كقراءة فقط |
has_icc_profile / is_icc_profile_untagged / global_angle لا تتغير أبداً | هذه الخصائص الثلاثة مبرمجة ثابتًا كقوالب نائبة في هذا بناء FOSS | قارن block.id بـ ImageResourceIds بدلاً من ذلك (انظر أعلاه) |
FAQ
ما الفرق بين image_resources و resources؟
كلاهما يسرد نفس كتل الموارد الأساسية، ولكن كأنواع كائنات مختلفة: image_resources يُعيد كائنات PreservedResourceBlock (معرف/اسم/حجم خام، تُستخدم للعودة)، بينما resources يُعيد ملخصات PsdResourceInfo (يضيف تصنيف kind، وهو حالياً دائمًا UNKNOWN).
هل يمكنني تعديل أو إزالة مورد صورة؟
لا — مُعيّن image_resources’ يرفع NotSupportedException، و PreservedResourceBlock.save() يرفع NotImplementedError إذا نُدِي مباشرة. الموارد للقراءة فقط في هذا البناء المفتوح المصدر.
API Reference ملخص
| فئة/طريقة | وصف |
|---|---|
PsdImage.image_resources | كتل موارد خام (PreservedResourceBlock، للقراءة فقط) |
PsdImage.resources | ملخصات الموارد (PsdResourceInfo، kind دائمًا UNKNOWN) |
PsdImage.indexed_palette | ملخص لوحة الألوان المفهرسة، إذا كانت موجودة |
ImageResourceIds | ثوابت معرف المورد (ID) المعروفة للمقارنة مع resource_id/id |