Introducción

Aspose.PSD FOSS para Python es una nueva biblioteca de código abierto para trabajar con archivos PSD y PSB (documento grande de Photoshop) desde código Python. Se publica bajo la licencia MIT, no tiene dependencias nativas de terceros y solo requiere la biblioteca estándar Python en tiempo de ejecución. El paquete se importa como aspose_psd_foss.

La biblioteca está organizada en torno a la clase PsdImage, que extiende la clase base abstracta Image, y la clase Layer. Image.load() / PsdImage.load() cargan un documento desde una ruta de archivo o un flujo, exponiendo la información del encabezado (width, height, color_mode, version, compression) y la colección analizada layers; PsdImage.save() escribe el documento de nuevo a un archivo o flujo. Ambas clases admiten la sentencia with para la limpieza automática. Cada Layer expone sus propios metadatos — name, bounds, is_visible, opacity, clipping, blend_mode_key, y la información de canal/máscara — y un subconjunto de estas propiedades puede modificarse in situ y guardarse de nuevo en el archivo.

Esta versión está dirigida a desarrolladores que necesitan inspeccionar o realizar ediciones limitadas de metadatos en archivos PSD/PSB dentro de una base de código Python sin una licencia comercial — herramientas de canal de activos que informan sobre la estructura de capas, scripts de compilación que renombran o alternan la visibilidad de capas antes de la entrega, o fixtures de prueba que necesitan leer el encabezado PSD y los datos de capa sin un motor de renderizado completo. La biblioteca no renderiza datos de píxeles ni convierte PSD/PSB a otros formatos de imagen — es un lector/escritor centrado en metadatos para el formato contenedor PSD/PSB.


Qué incluye

Inspección de documentos

PsdImage.load() analiza el encabezado de un archivo PSD o PSB en propiedades tipadas — width, height, bits_per_channel, color_mode, version, compression, size y is_flatten — sin decodificar datos de píxeles.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    print(f"Width: {image.width}, Height: {image.height}")
    print(f"ColorMode: {image.color_mode}, Version: {image.version}")
    print(f"Layers: {image.layer_count}, Compression: {image.compression}")

Metadatos de capa

Cada entrada en PsdImage.layers es un Layer que expone sus propios límites, visibilidad, opacidad, recorte y metadatos de modo de fusión.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    for layer in image.layers:
        print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")

Ediciones de metadatos compatibles

Un subconjunto de propiedades de capa puede modificarse in situ y volver a escribirse con PsdImage.save(): nombre, visibilidad, opacidad, recorte, clave del modo de fusión y los cuatro bordes de los límites.

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

with PsdImage.load("input.psd") as image:
    layer = image.layers[0]
    layer.name = f"{layer.name} (edited)"
    layer.is_visible = not layer.is_visible
    layer.opacity = 128
    layer.blend_mode_key = BlendMode.MULTIPLY
    image.save("output.psd")

Inicio rápido

Instala el paquete, luego carga un archivo PSD o PSB, inspecciona sus capas y guárdalo de nuevo:

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
from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")

    for layer in image.layers:
        print(f"  {layer.name}: {layer.bounds}")

    image.save("output.psd")

Formatos compatibles

FormatoExtensiónLeerEscribir
PSDpsd✓✓
PSBpsb✓✓

Código abierto y licencias

Aspose.PSD FOSS para Python está bajo licencia MIT y puede usarse en productos comerciales sin regalías, sin marca de agua de evaluación ni límite de uso.

La biblioteca no tiene dependencias nativas de terceros — solo se requiere la biblioteca estándar de Python en tiempo de ejecución.


Primeros pasos

Recursos relacionados