Resources

Resources

Un PsdImage cargado expone sus bloques de recursos de imagen — entradas de estilo metadatos como cuadrículas, guías y cargas útiles de perfiles ICC — a través de dos vistas de solo lectura, además de un resumen separado para paletas de colores indexados.


Listado de bloques de recursos

PsdImage.image_resources devuelve un PreservedResourceBlock por recurso, con el ID de recurso bruto, el nombre y el tamaño en 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 devuelve un resumen PsdResourceInfo separado por recurso, añadiendo una clasificación kind — en esta compilación FOSS kind es siempre PsdResourceKind.UNKNOWN, ya que el analizador de recursos de esta compilación no decodifica IDs de recursos específicos en propiedades semánticas.


Reconociendo IDs de recursos conocidos

Dado que kind no se resuelve semánticamente, reconoce un recurso específico comparando block.id con las constantes en ImageResourceIds:

for block in image.image_resources:
    if block.id == ImageResourceIds.ICC_PROFILE:
        print(f"Found an ICC profile resource ({block.data_size} bytes)")

Leyendo una paleta de colores indexada

Si los datos de color del documento están basados en una paleta, PsdImage.indexed_palette devuelve sus entradas:

palette = image.indexed_palette

if palette is not None:
    print(f"Palette entries: {len(palette.entries)}")

Consejos y mejores prácticas

  • PsdImage.image_resources’ getter funciona para listar recursos, pero su setter lanza NotSupportedException — los recursos son de solo lectura en esta compilación FOSS.
  • PsdImage.has_icc_profile, is_icc_profile_untagged y global_angle son valores de marcador de posición fijos en esta compilación FOSS (siempre False, None y 0 respectivamente) sin importar el contenido real del documento cargado — use el patrón de comparación de ID de recurso anterior si necesita detectar estos recursos por sí mismo.
  • PreservedResourceBlock.save() lanza NotImplementedError si se llama directamente — los recursos se procesan automáticamente en ciclo completo cuando llama a image.save() sobre el documento completo.

Problemas comunes

ProblemaCausaSolución
image.indexed_palette es NoneEl tipo de datos de color del documento no es INDEXED_PALETTESólo los documentos de color indexado llevan una paleta
Configuración NotSupportedException image.image_resourcesEl setter no es compatible con esta compilación FOSSTrate image_resources como de solo lectura
Nunca cambie has_icc_profile / is_icc_profile_untagged / global_angleEstas 3 propiedades son stubs de marcadores de posición codificados en esta compilación FOSSCompare block.id con ImageResourceIds en su lugar (ver arriba)

FAQ

¿Cuál es la diferencia entre image_resources y resources?

Ambos enumeran los mismos bloques de recursos subyacentes, pero como diferentes tipos de objeto: image_resources devuelve objetos PreservedResourceBlock (ID/nombre/tamaño sin procesar, usados para round-tripping), mientras que resources devuelve resúmenes PsdResourceInfo (añade una clasificación kind, actualmente siempre UNKNOWN).

¿Puedo modificar o eliminar un recurso de imagen?

No — el setter de image_resources lanza NotSupportedException, y PreservedResourceBlock.save() lanza NotImplementedError si se llama directamente. Los recursos son de solo lectura en esta compilación FOSS.


API Reference Resumen

Clase/MétodoDescripción
PsdImage.image_resourcesBloques de recurso sin procesar (PreservedResourceBlock, de solo lectura)
PsdImage.resourcesResumen de recursos (PsdResourceInfo, kind siempre UNKNOWN)
PsdImage.indexed_paletteResumen de la paleta de colores indexada, cuando está presente
ImageResourceIdsConstantes de ID de recurso conocidas para comparar con resource_id/id

Ver también

 Español