Cómo cargar un documento PSD en Python

Cómo cargar un documento PSD en Python

PsdImage.load es el único punto de entrada público para abrir un documento PSD/PSB — acepta ya sea una ruta de archivo o un flujo legible ya abierto. El lector de bajo nivel sección por sección al que delega internamente no es algo que llames directamente.

Guía paso a paso

Paso 1: Instalar el paquete

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

Paso 2: Importar las clases necesarias

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

Paso 3: Cargar desde una ruta de archivo

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

Paso 4: Cargar desde un flujo

Un flujo no necesita ser seekable — load lee todo su contenido en un búfer interno antes de analizar:

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

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

Problemas comunes y soluciones

FileNotFoundError: File not found: .... La ruta pasada a load no apunta a un archivo existente — load checks os.path.isfile antes de intentar abrirlo.

PsdLoadException: Unexpected end of PSD/PSB data while reading the file structure. El flujo de origen se quedó sin datos a mitad del análisis (un EOFError mientras se leía) — es probable que el archivo esté truncado.

PsdLoadException: Failed to read PSD/PSB data from the source stream. Se produjo un error de E/S al leer del propio flujo, envuelto y relanzado como un PsdLoadException.

ArgumentNullException al llamar a load. load fue llamado con None como el argumento de stream.

Preguntas frecuentes

¿Necesito buscar al inicio del stream antes de llamar a load?

No — si el stream es buscable, load restaura su posición original después de la lectura; si no es buscable, load sigue funcionando ya que almacena en búfer el contenido del stream internamente antes del análisis.

¿Cuál es la diferencia entre los dos fallas FileNotFoundError/PsdLoadException anteriores?

Una ruta de archivo faltante genera el error estándar FileNotFoundError antes de que comience cualquier análisis. Un PsdLoadException en cambio significa que se encontró y abrió un archivo (o stream), pero los datos PSD/PSB en sí están truncados, corruptos o de otro modo ilegibles una vez que comenzó el análisis — vea también Troubleshooting para los relacionados con la versión y los límites PsdLoadException variantes.

Ver también

 Español