Resources
Resources
Um PsdImage carregado expõe seus blocos de recursos de imagem — entradas no estilo de metadados, como grades, guias e cargas úteis de perfil ICC — através de duas visualizações somente leitura, além de um resumo separado para paletas de cores indexadas.
Listando Blocos de Recursos
PsdImage.image_resources retorna um PreservedResourceBlock por recurso, com o ID bruto do recurso, nome e tamanho em bytes:
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.resources.imageresourceids import ImageResourceIds
image = PsdImage.load(input_path)
for block in image.image_resources:
print(f"ID: {block.id}, name: {block.name!r}, size: {block.size} bytes")PsdImage.resources retorna um resumo PsdResourceInfo separado por recurso, acrescentando uma classificação kind — nesta compilação FOSS kind está sempre PsdResourceKind.UNKNOWN, já que o analisador de recursos desta compilação não decodifica IDs de recursos específicos em propriedades semânticas.
Reconhecendo IDs de Recursos Conhecidos
Como kind não é resolvido semanticamente, reconheça um recurso específico comparando block.id com as constantes em ImageResourceIds:
for block in image.image_resources:
if block.id == ImageResourceIds.ICC_PROFILE:
print(f"Found an ICC profile resource ({block.data_size} bytes)")Lendo uma Paleta de Cores Indexada
Se os dados de cor do documento são baseados em paleta, PsdImage.indexed_palette retorna suas entradas:
palette = image.indexed_palette
if palette is not None:
print(f"Palette entries: {len(palette.entries)}")Dicas e Melhores Práticas
- O getter de
PsdImage.image_resourcesfunciona para listar recursos, mas seu setter geraNotSupportedException— recursos são somente leitura nesta compilação FOSS. PsdImage.has_icc_profile,is_icc_profile_untaggedeglobal_anglesão valores de placeholder fixos nesta compilação FOSS (sempreFalse,Nonee0, respectivamente), independentemente do conteúdo real do documento carregado — use o padrão de comparação de ID de recurso acima se precisar detectar esses recursos por conta própria.PreservedResourceBlock.save()geraNotImplementedErrorse chamado diretamente — os recursos são enviados de volta automaticamente quando você chamaimage.save()no documento inteiro.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
image.indexed_palette é None | O tipo de dados de cor do documento não é INDEXED_PALETTE | Somente documentos com cor indexada contêm uma paleta |
NotSupportedException configuração image.image_resources | O setter não é suportado nesta compilação FOSS | Trate image_resources como somente leitura |
has_icc_profile / is_icc_profile_untagged / global_angle nunca altere | Essas 3 propriedades são stubs de placeholder codificados rigidamente nesta build FOSS | Compare block.id com ImageResourceIds em vez disso (veja acima) |
FAQ
Qual é a diferença entre image_resources e resources?
Ambos listam os mesmos blocos de recursos subjacentes, mas como tipos de objeto diferentes: image_resources retorna objetos PreservedResourceBlock (ID/nome/tamanho bruto, usado para round-tripping), enquanto resources retorna resumos PsdResourceInfo (adiciona uma classificação kind, atualmente sempre UNKNOWN).
Posso modificar ou remover um recurso de imagem?
Não — o setter de image_resources gera NotSupportedException, e PreservedResourceBlock.save() gera NotImplementedError se chamado diretamente. Os recursos são somente leitura nesta compilação FOSS.
Resumo API Reference
| Classe/Método | Descrição |
|---|---|
PsdImage.image_resources | Blocos de recurso brutos (PreservedResourceBlock, somente leitura) |
PsdImage.resources | Sumários de recursos (PsdResourceInfo, kind sempre UNKNOWN) |
PsdImage.indexed_palette | Resumo da paleta de cores indexada, quando presente |
ImageResourceIds | Constantes de ID de recurso conhecidas para comparação com resource_id/id |