Introdução
Aspose.PSD FOSS para Python é uma nova biblioteca de código aberto para trabalhar com arquivos PSD e PSB (documento grande do Photoshop) a partir de código Python. É lançada sob a licença MIT, não tem dependências nativas de terceiros e requer apenas a biblioteca padrão Python em tempo de execução. O pacote é importado como aspose_psd_foss.
A biblioteca está organizada em torno da classe PsdImage, que estende a classe base abstrata Image, e da classe Layer. Image.load() / PsdImage.load() carregam um documento a partir de um caminho de arquivo ou de um stream, expondo informações de cabeçalho (width, height, color_mode, version, compression) e a coleção analisada layers; PsdImage.save() grava o documento de volta em um arquivo ou stream. Ambas as classes suportam a instrução with para limpeza automática. Cada Layer expõe seus próprios metadados — name, bounds, is_visible, opacity, clipping, blend_mode_key, e informações de canal/máscara — e um subconjunto dessas propriedades pode ser alterado in situ e salvo de volta no arquivo.
Esta versão destina-se a desenvolvedores que precisam inspecionar ou fazer edições limitadas de metadados em arquivos PSD/PSB dentro de uma base de código Python sem uma licença comercial — ferramentas de pipeline de ativos que relatam a estrutura de camadas, scripts de build que renomeiam ou alternam a visibilidade de camadas antes da entrega, ou fixtures de teste que precisam ler o cabeçalho PSD e os dados de camada sem um motor de renderização completo. A biblioteca não renderiza dados de pixel nem converte PSD/PSB para outros formatos de imagem — ela é um leitor/gravador focado em metadados para o formato de contêiner PSD/PSB.
O que está incluído
Inspeção de documento
PsdImage.load() analisa o cabeçalho de um arquivo PSD ou PSB em propriedades tipadas — width, height, bits_per_channel, color_mode, version, compression, size e is_flatten — sem decodificar dados de pixel.
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}")
Metadados da Camada
Cada entrada em PsdImage.layers é um Layer expondo seus próprios limites, visibilidade, opacidade, recorte e metadados de blend-mode.
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}")
Edições de Metadados Suportadas
Um subconjunto de propriedades da camada pode ser alterado no local e gravado novamente com PsdImage.save(): nome, visibilidade, opacidade, recorte, blend mode key e as quatro bordas dos limites.
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")
Início Rápido
Instale o pacote, então carregue um arquivo PSD ou PSB, inspecione suas camadas e salve-o novamente:
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:$PYTHONPATHfrom 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 Suportados
| Formato | Extensão | Ler | Escrever |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
Código Aberto & Licenciamento
Aspose.PSD FOSS para Python está licenciado sob MIT e pode ser usado em produtos comerciais sem royalties, sem marca d’água de avaliação ou limite de uso.
A biblioteca não tem dependências nativas de terceiros — apenas a biblioteca padrão Python é necessária em tempo de execução.