Núcleo API
API principal
PsdImage es el punto de entrada para cargar, inspeccionar y guardar documentos PSD/PSB. Extiende la clase base abstracta Image, que declara Width, Height, Bounds, Load(), Save() y Dispose().
Cargar y Guardar Documentos
Image.Load() acepta una ruta de archivo o un Stream y devuelve un Image; realice un cast del resultado a PsdImage para acceder al resto de la superficie del documento. PsdImage.Save() escribe el documento de nuevo en una ruta de archivo o flujo.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Propiedades del Encabezado del Documento
PsdImage expone el encabezado analizado como propiedades tipadas: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size y IsFlatten.
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");Recursos de Imagen
PsdImage.ImageResources devuelve la matriz ResourceBlock[] analizada. En esta compilación FOSS, ImageResources, GlobalLayerResources, ActiveLayer y HasTransparencyData pueden leerse pero no reasignarse — sus setters lanzan NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Consejos y mejores prácticas
- Siempre convierta el resultado de
Image.Load()aPsdImagepara acceder a los miembros específicos de PSD. - Envuelva los objetos compatibles con
Dispose()en una sentenciausing;PsdImageimplementaIDisposable. - Trate
ImageResources,GlobalLayerResources,ActiveLayeryHasTransparencyDatacomo de solo lectura, aunque expongan un setter. - Verifique
image.Layers.Lengthantes de indexarimage.Layers— un documento aplanado puede tener cero capas.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
NotSupportedException al establecer ImageResources | Esta propiedad es de solo lectura en la compilación FOSS a pesar de tener un setter | Lea el valor; no intente reasignarlo |
Matriz image.Layers vacía en un documento aplanado | IsFlatten es true y el documento no tiene capas analizadas | Compruebe image.Layers.Length (o image.IsFlatten) antes de indexar en image.Layers |
FAQ
¿Cargar un documento PSD decodifica los datos de píxeles?
No. PsdImage.Load() analiza el encabezado del documento, los metadatos de capa y los recursos sin decodificar ni renderizar datos de píxeles.
¿Puedo convertir un archivo PSD a otro formato de imagen?
No. Esta biblioteca carga, inspecciona y guarda únicamente documentos PSD/PSB — no renderiza datos de píxeles ni convierte a otros formatos de imagen.
Resumen de API Reference
| Clase/Método | Descripción |
|---|---|
Image.Load(string) / Image.Load(Stream) | Carga un documento PSD o PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | Guarda el documento |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Propiedades del encabezado del documento |
PsdImage.ImageResources | Bloques de recursos de imagen analizados (solo lectura) |