כיצד לטעון מסמך PSD ב-Python

כיצד לטעון מסמך PSD ב-Python

PsdImage.load הוא נקודת הכניסה הציבורית היחידה לפתיחת מסמך PSD/PSB — הוא מקבל או נתיב קובץ או זרם קריא שכבר פתוח. הקורא ברמת הנמוכה של קטע-בקטע שהוא משתמש בו פנימית אינו משהו שאתה קורא אליו ישירות.

מדריך שלב-אחר-שלב

שלב 1: התקנת החבילה

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATH

שלב 2: ייבוא המחלקות הדרושות

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException

שלב 3: טעינה מנתיב קובץ

image = PsdImage.load("input.psd")
print(f"Loaded: {image.width}x{image.height}")
image.dispose()

שלב 4: טעינה מזרם

זרם אינו צריך להיות ניתן לחיפוש — load קורא את כל תוכנו למאגר פנימי לפני הפענוח:

with open("input.psd", "rb") as stream:
    image = PsdImage.load(stream)

print(f"Loaded from stream: {image.width}x{image.height}")
image.dispose()

בעיות נפוצות ותיקונים

FileNotFoundError: File not found: .... ה הנתיב שהועבר ל load אינו מצביע לקובץ קיים — load checks os.path.isfile לפני ניסיון לפתוח אותו.

PsdLoadException: Unexpected end of PSD/PSB data while reading the file structure. זרם המקור נגמר באמצע הפענוח ( EOFError בקריאת) — הקובץ כנראה נחתך.

PsdLoadException: Failed to read PSD/PSB data from the source stream. אירעה שגיאת קלט/פלט בזמן קריאה מהזרם עצמו, עטופה והועלתה מחדש כ PsdLoadException.

ArgumentNullException בקריאה ל load. load הוקרא עם None כאשר הוא ארגומנט הזרם.

שאלות נפוצות

האם צריך לבצע seek לזרם חזרה להתחלה לפני קריאה ל-load?

לא — אם הזרם ניתן ל-seek, load משחזר את המיקום המקורי שלו לאחר הקריאה; אם הוא אינו ניתן ל-seek, load עדיין פועל מכיוון שהוא מאגר את תוכן הזרם פנימית לפני הפירוש.

מה ההבדל בין שני הכישלונות FileNotFoundError/PsdLoadException למעלה?

נתיב קובץ חסר מעלה את הסטנדרט FileNotFoundError לפני שמתחיל ניתוח כלשהו. A PsdLoadException במקום זאת משמעותו שקובץ (או זרם) נמצא ונפתח, אך הנתונים של PSD/PSB עצמם קצרים, פגומים, או שלא ניתן לקרוא אותם לאחר שהחל ניתוח — ראה גם Troubleshooting לגרסה ולנושאים הקשורים לגבול PsdLoadException וריאנטים.

ראה גם

 עברית