نوشتن توصیفگرها
نوشتن توصیفگرها
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 درباره طول رشته پاسکال | یک مقدار رشته بیش از ۲۵۵ بایت است | مشاهده کنید استثنائات هسته |
FAQ
آیا ذخیرهسازی به یک جریان، پس از آن آن را میبندد؟
نه — ارسال یک جریان به save پس از آن آن را باز میگذارد، بنابراین شما چرخه حیات آن را کنترل میکنید. ذخیرهسازی به مسیر فایل، در مقابل، فایل را بهصورت داخلی باز و بسته میکند.
آیا میتوانم یک فایل PSB از سندی که بهعنوان PSD بارگذاری شده تولید کنم؟
نه — هیچ API عمومی برای نادیدهگیری قالبساز بسته هنگام ذخیره وجود ندارد؛ همیشه قالب سند بارگذاریشده را بازتاب میدهد.
API Reference خلاصه
| کلاس/متد | توضیح |
|---|---|
PsdImage.save(file_path) / PsdImage.save(stream) | سند را ذخیره میکند |