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 buildChecklist de Diagnóstico
Antes de abrir um chamado de suporte, siga esta lista de verificação:
- Confirme se o arquivo é realmente PSD/PSB — a
PsdLoadExceptionsobre uma versão não suportada geralmente significa que o arquivo não é um documento PSD/PSB real. - Verifique se há
NotSupportedException— pode ser que você esteja definindo uma das 7 propriedades somente leitura listadas acima em vez de lê-la. - Verify
Opacityestá na faixa de 0-255, não 0.0-1.0 ou 0-100. - Mantenha os valores de string abaixo de 255 bytes antes de salvar, para evitar
PsdSaveException. - Call
image.Savedepois de cada edição — alterações em umLayerinstância não é persistida até que o documento seja salvo.