Solução de Problemas Aspose.PSD FOSS for .NET

Solução de Problemas Aspose.PSD FOSS for .NET

Solução de problemas Aspose.PSD FOSS para .NET

Esta página cobre os problemas mais comuns encontrados ao carregar, inspecionar e salvar documentos PSD/PSB com Aspose.PSD FOSS para .NET.


Problemas de carregamento

PsdLoadException com uma mensagem sobre uma versão não suportada

O campo de versão PSD declarado no arquivo não é nem o PSD padrão nem o valor PSB de documento grande. Confirme que o arquivo é um documento PSD/PSB genuíno e não corrompido antes de carregá-lo:

try
{
    using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
    Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}

PsdLoadException sobre um comprimento de seção que excede um limite

Os campos de comprimento interno do arquivo são inconsistentes com seu tamanho real — isso geralmente significa que o arquivo está truncado ou corrompido, não que ele use uma estrutura não suportada mas, de outra forma, válida. Reexporte o arquivo a partir da aplicação de origem e tente novamente.


Problemas ao salvar

PsdSaveException sobre o comprimento de uma string Pascal

Um valor de string — normalmente o nome de uma camada ou recurso — excede 255 bytes, o máximo que um campo de string Pascal do PSD pode codificar:

layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");

Problemas ao editar

NotSupportedException ao definir uma propriedade

Várias propriedades são somente leitura nesta compilação FOSS. Em PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Em Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Trate-as como apenas de leitura — não as atribua.

A opacidade da camada parece incorreta após defini-la

Layer.Opacity é um byte na faixa 0-255, não uma fração 0.0-1.0 ou uma porcentagem:

layer.Opacity = 200; // approximately 78% opaque, not 200%

A remoção da camada não tem efeito

PsdImage.Layers tem um setter funcional no nível da coleção, mas elementos individuais do array não podem ser simplesmente removidos no local — reatribua todo o array filtrado:

image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();

Problemas de Instalação

Pacote não encontrado

Confirme a identidade exata do pacote:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build

Checklist de Diagnóstico

Antes de abrir um chamado de suporte, siga esta lista de verificação:

  1. Confirme se o arquivo é realmente PSD/PSB — a PsdLoadException sobre uma versão não suportada geralmente significa que o arquivo não é um documento PSD/PSB real.
  2. Verifique se há NotSupportedException — pode ser que você esteja definindo uma das 7 propriedades somente leitura listadas acima em vez de lê-la.
  3. Verify Opacity está na faixa de 0-255, não 0.0-1.0 ou 0-100.
  4. Mantenha os valores de string abaixo de 255 bytes antes de salvar, para evitar PsdSaveException.
  5. Call image.Save depois de cada edição — alterações em um Layer instância não é persistida até que o documento seja salvo.

Ver também

 Português