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()؛ كل ما باقي السطح للقراءة فقط بحكم التصميم في هذا البناء المفتوح المصدر. 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 دون فتح Photoshop
  • إنشاء تقرير بأسماء الطبقات، والمرئية، وأنماط الدمج للمراجعة التصميمية
  • تحديد الطبقات المخفية أو ذات الشفافية الصفرية المتبقية من تعديلات سابقة

تحرير بيانات التعريف الأساسية للطبقة

  • يمكن تعيين 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 تعرض أخطاء التحميل/الحفظ برسائل واضحة
  • جميع الفئات هي pure Python بدون وحدات امتداد مدمجة

تشخيص وفحص

  • تشخيص سبب فشل تحميل ملف PSD معين، باستخدام استثناء محدد بدلاً من خطأ عام
  • التحقق مما إذا كانت الطبقة تحمل قناعًا أو بيانات نطاق الدمج قبل معالجتها
  • فحص بيانات التعريف لكل قناة لتشخيص على مستوى التنسيق

تحميل ملف 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 يكشف عن مُعيّن يعمل لعدة خصائص، مثل الظهور والاسم، وPsdImage.layers نفسه يحتوي على مُعيّن يعمل لاستبدال المجموعة. بعض الخصائص المحددة (معلومات القناة، بيانات القناع، نطاقات الدمج، وبعض موارد مستوى المستند) هي للقراءة فقط في هذا البناء المفتوح المصدر وتطرح NotSupportedException إذا تم تعيينها.

  

الدعم وموارد التعلم

 العربية