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

انظر أيضاً

 العربية