اكتب المُوَصِّفات
كتابة الأوصاف
PsdImage.save هو نقطة الدخول العامة الوحيدة لكتابة المستند مرة أخرى — وهو يقبل إما مسار ملف أو تدفق قابل للكتابة مفتوح مسبقًا. كاتب القسم منخفض المستوى الذي يقوم بترميز البايتات الفعلي هو تفاصيل تنفيذ داخلية، وليس شيئًا تستدعيه مباشرة.
الحفظ إلى مسار ملف أو تدفق
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load(input_path)
image.save("output.psd")تمرير تدفق بدلاً من مسار يترك التدفق مفتوحًا بعد ذلك — أنت تتحكم متى تغلقه:
with open("output.psd", "wb") as stream:
image.save(stream)اختيار تنسيق الحاوية
لا يوجد API عام لاختيار تنسيق الحاوية الناتج عند الحفظ — عملية الحفظ دائمًا تعكس التنسيق الذي تم تحميل المستند به (is_large_document / is_psb). لا توجد مسار تحويل مدعوم بين PSD و PSB في هذا الإصدار المفتوح المصدر.
نصائح وأفضل الممارسات
- استدعِ
saveقبل التخلص من الصورة — يؤديsaveعلىPsdImageتم التخلص منه إلى إثارةRuntimeError. - الكاتب الداخلي على مستوى القسم الذي يتم استدعاؤه بواسطة
saveليس نقطة دخول موثقة أو مدعومة بمفرده؛ يجب دائمًا المرور عبرPsdImage.save.
المشكلات الشائعة
| مشكلة | السبب | الإصلاح |
|---|---|---|
RuntimeError: PsdImage has been disposed. | save تم استدعاؤه بعد dispose() (أو بعد خروج كتلة with) | استدعِ save قبل التخلص من الصورة |
PsdSaveException بخصوص طول سلسلة باسكال | قيمة السلسلة تتجاوز 255 بايت | انظر الاستثناءات الأساسية |
FAQ
هل يؤدي حفظ البيانات إلى تدفق إلى إغلاق التدفق لاحقًا؟
لا — تمرير تدفق إلى save يتركه مفتوحًا بعد ذلك بحيث تتحكم في دورة حياته. بالمقابل، حفظ إلى مسار ملف يفتح الملف ويغلقه داخليًا.
هل يمكنني إنشاء ملف PSB من مستند تم تحميله كـ PSD؟
لا — لا يوجد API عام لتجاوز تنسيق الحاوية عند الحفظ؛ فهو دائمًا يعكس تنسيق المستند المحمَّل نفسه.
API Reference ملخص
| فئة/طريقة | وصف |
|---|---|
PsdImage.save(file_path) / PsdImage.save(stream) | يحفظ المستند |