Núcleo API
API principal
PsdImage es el punto de entrada para cargar, inspeccionar y guardar documentos PSD/PSB. Extiende la clase base abstracta Image, que declara solo load() — el resto de la superficie del documento (width, height, save(), soporte de gestor de contexto) se define en PsdImage mismo, no se hereda.
Cargando y Guardando Documentos
Image.load() acepta una ruta de archivo o un flujo y devuelve un Image; para la entrada PSD/PSB esto siempre es un PsdImage, por lo que la superficie del documento está disponible inmediatamente sin un casting explícito. PsdImage también admite la sentencia with para la limpieza automática, y PsdImage.save() escribe el documento de nuevo a una ruta de archivo o flujo.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Propiedades del Encabezado del Documento
PsdImage expone el encabezado analizado como propiedades tipadas: width, height, bits_per_channel, color_mode, version, compression, size y is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Recursos de Imagen
PsdImage.image_resources devuelve la lista analizada de objetos ResourceBlock. En esta compilación FOSS, image_resources, global_layer_resources, active_layer y has_transparency_data pueden leerse pero no reasignarse — sus setters generan NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Consejos y Mejores Prácticas
Image.load()ya devuelve unPsdImagepara una entrada PSD/PSB — no se necesita cast, a diferencia de algunos otros puertos de esta biblioteca a otros lenguajes.- Utilice la sentencia
with;PsdImageadmite el protocolo de gestor de contexto para la limpieza. - Trate
image_resources,global_layer_resources,active_layeryhas_transparency_datacomo de solo lectura aunque expongan un setter. - Verifique
image.layer_countantes de indexar enimage.layers— un documento aplanado puede tener cero capas.
Problemas Comunes
| Problema | Causa | Solución |
|---|---|---|
NotSupportedException al establecer image_resources | Esta propiedad es de solo lectura en la compilación FOSS a pesar de tener un setter | Lea el valor; no intente reasignarlo |
Lista vacía de image.layers en un documento aplanado | is_flatten es True y el documento no tiene capas analizadas | Verifique image.layer_count (o image.is_flatten) antes de indexar en image.layers |
FAQ
¿Cargar un documento PSD decodifica los datos de píxeles?
No. PsdImage.load() analiza el encabezado del documento, los metadatos de capa y los recursos sin decodificar ni renderizar datos de píxeles.
¿Puedo convertir un archivo PSD a otro formato de imagen?
No. Esta biblioteca carga, inspecciona y guarda únicamente documentos PSD/PSB — no renderiza datos de píxeles ni los convierte a otros formatos de imagen.
API Reference Resumen
| Clase/Método | Descripción |
|---|---|
Image.load(path) / Image.load(stream) | Carga un documento PSD o PSB |
PsdImage.save(path) / PsdImage.save(stream) | Guarda el documento |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Propiedades del encabezado del documento |
PsdImage.image_resources | Bloques de recursos de imagen analizados (solo lectura) |