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 Width, Height, Bounds, Load(), Save() e Dispose().


Carregando e Salvando Documentos

Image.Load() aceita um caminho de arquivo ou um Stream e retorna um Image; faça cast do resultado para PsdImage para acessar o restante da superfície do documento. PsdImage.Save() grava o documento de volta em um caminho de arquivo ou stream.

using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);

Propriedades do Cabeçalho do Documento

PsdImage expõe o cabeçalho analisado como propriedades tipadas: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size e 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 Imagem

PsdImage.ImageResources retorna a matriz ResourceBlock[] analisada. Nesta compilação FOSS, ImageResources, GlobalLayerResources, ActiveLayer e HasTransparencyData podem ser lidos mas não reassinados — seus setters lançam NotSupportedException.

foreach (ResourceBlock resource in image.ImageResources)
{
    Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}

Dicas e Melhores Práticas

  • Sempre converta o resultado de Image.Load() para PsdImage para acessar membros específicos de PSD.
  • Envolva objetos dignos de Dispose() em uma instrução using; PsdImage implementa IDisposable.
  • Trate ImageResources, GlobalLayerResources, ActiveLayer e HasTransparencyData como somente leitura, mesmo que eles exponham um setter.
  • Verifique image.Layers.Length antes de indexar em image.Layers — um documento achatado pode ter zero camadas.

Problemas Comuns

ProblemaCausaCorreção
NotSupportedException ao definir ImageResourcesEsta propriedade é somente leitura na compilação FOSS, apesar de ter um setterLeia o valor; não tente reatribuir-lo
Array image.Layers vazio em um documento achatadoIsFlatten está true e o documento não tem camadas analisadasVerifique image.Layers.Length (ou image.IsFlatten) 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 os dados de pixel.

Posso converter um arquivo PSD para outro formato de imagem?

Não. Esta biblioteca carrega, inspeciona e salva documentos PSD/PSB apenas — ela não renderiza dados de pixel nem converte para outros formatos de imagem.


API Reference Resumo

Classe/MétodoDescrição
Image.Load(string) / Image.Load(Stream)Carrega um documento PSD ou PSB
PsdImage.Save(string) / PsdImage.Save(Stream)Salva o documento
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenPropriedades do cabeçalho do documento
PsdImage.ImageResourcesBlocos de recursos de imagem analisados (somente leitura)

Ver também

 Português