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_resources funciona para listar recursos, mas seu setter gera NotSupportedException — recursos são somente leitura nesta compilação FOSS.
  • PsdImage.has_icc_profile, is_icc_profile_untagged e global_angle são valores de placeholder fixos nesta compilação FOSS (sempre False, None e 0, 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() gera NotImplementedError se chamado diretamente — os recursos são enviados de volta automaticamente quando você chama image.save() no documento inteiro.

Problemas Comuns

ProblemaCausaCorreção
image.indexed_palette é NoneO tipo de dados de cor do documento não é INDEXED_PALETTESomente documentos com cor indexada contêm uma paleta
NotSupportedException configuração image.image_resourcesO setter não é suportado nesta compilação FOSSTrate image_resources como somente leitura
has_icc_profile / is_icc_profile_untagged / global_angle nunca altereEssas 3 propriedades são stubs de placeholder codificados rigidamente nesta build FOSSCompare 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étodoDescrição
PsdImage.image_resourcesBlocos de recurso brutos (PreservedResourceBlock, somente leitura)
PsdImage.resourcesSumários de recursos (PsdResourceInfo, kind sempre UNKNOWN)
PsdImage.indexed_paletteResumo da paleta de cores indexada, quando presente
ImageResourceIdsConstantes de ID de recurso conhecidas para comparação com resource_id/id

Ver também

 Português