Núcleo API
API de núcleo
PsdImage é o ponto de entrada para carregar, inspecionar e salvar documentos PSD/PSB. Ele estende a classe base abstrata Image, que declara apenas load() — o resto da superfície do documento (width, height, save(), suporte a gerenciador de contexto) é definido em PsdImage próprio, não é herdado.
Carregando e Salvando Documentos
Image.load() aceita um caminho de arquivo ou um fluxo e retorna um Image; para entrada PSD/PSB isso é sempre um PsdImage, portanto a superfície do documento está imediatamente disponível sem um cast explícito. PsdImage também suporta a instrução with para limpeza automática, e PsdImage.save() grava o documento de volta para um caminho de arquivo ou fluxo.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Propriedades do Cabeçalho do Documento
PsdImage expõe o cabeçalho analisado como propriedades tipadas: width, height, bits_per_channel, color_mode, version, compression, size e 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 Imagem
PsdImage.image_resources devolve a lista analisada de objetos ResourceBlock. Nesta compilação FOSS, image_resources, global_layer_resources, active_layer e has_transparency_data podem ser lidos mas não reatribuídos — seus setters levantam NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Dicas e Melhores Práticas
Image.load()já retorna umPsdImagepara entrada PSD/PSB — não é necessário cast, ao contrário de algumas outras portas de linguagem desta biblioteca.- Use a instrução
with;PsdImagesuporta o protocolo de gerenciador de contexto para limpeza. - Trate
image_resources,global_layer_resources,active_layerehas_transparency_datacomo somente leitura, mesmo que exponham um setter. - Verifique
image.layer_countantes de indexar emimage.layers— um documento achatado pode ter zero camadas.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
NotSupportedException ao definir image_resources | Esta propriedade é somente leitura na compilação FOSS, apesar de possuir um setter | Leia o valor; não tente reatribui-lo |
Lista vazia de image.layers em um documento achatado | is_flatten está True e o documento não tem camadas analisadas | Verifique image.layer_count (ou image.is_flatten) antes de indexar em image.layers |
FAQ
Carregar um documento PSD decodifica os dados de pixel?
Não. PsdImage.load() analisa o cabeçalho do documento, os metadados das camadas e os recursos sem decodificar ou renderizar dados de pixel.
Posso converter um arquivo PSD para outro formato de imagem?
Não. Esta biblioteca carrega, inspeciona e salva apenas documentos PSD/PSB — ela não renderiza dados de pixel nem converte para outros formatos de imagem.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
Image.load(path) / Image.load(stream) | Carrega um documento PSD ou PSB |
PsdImage.save(path) / PsdImage.save(stream) | Salva o documento |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Propriedades do cabeçalho do documento |
PsdImage.image_resources | Blocos de recursos de imagem analisados (somente leitura) |