Усунення неполадок Aspose.PSD FOSS for .NET
Усунення проблем Aspose.PSD FOSS для .NET
Ця сторінка охоплює найпоширеніші проблеми, що виникають під час завантаження, перегляду та збереження документів PSD/PSB за допомогою Aspose.PSD FOSS для .NET.
Проблеми завантаження
PsdLoadException з повідомленням про непідтримувану версію
Поле версії PSD, вказане у файлі, не відповідає ні стандартному PSD, ні значенню PSB для великих документів. Переконайтеся, що файл є справжнім, неушкодженим документом PSD/PSB перед завантаженням:
try
{
using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}PsdLoadException про те, що довжина розділу перевищує межу
Внутрішні поля довжини файлу не відповідають його фактичному розміру — це зазвичай означає, що файл обрізаний або пошкоджений, а не те, що він використовує непідтримувану, але в іншому випадку дійсну структуру. Експортуйте файл заново з вихідного застосунку та спробуйте ще раз.
Проблеми зі збереженням
PsdSaveException про довжину Pascal-рядка
Значення рядка — найчастіше назва шару або ресурсу — перевищує 255 байт, максимум, який може кодувати поле Pascal-рядка у PSD:
layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");Проблеми під час редагування
NotSupportedException під час встановлення властивості
Декілька властивостей є лише для читання у цій збірці FOSS. На PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. На Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Ставте їх як лише для отримання — не присвоюйте їм значення.
Непрозорість шару виглядає неправильно після її встановлення
Layer.Opacity — це byte у діапазоні 0-255, а не дробове значення 0.0-1.0 або відсоток:
layer.Opacity = 200; // approximately 78% opaque, not 200%Видалення шару не має ефекту
PsdImage.Layers має працюючий сеттер на рівні колекції, але окремі елементи масиву не можна просто видалити на місці — перепризначте весь відфільтрований масив:
image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();Проблеми з установкою
Пакет не знайдено
Підтвердіть точну ідентичність пакету:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildКонтрольний список діагностики
Перш ніж відкривати заявку в підтримку, пройдіть цей контрольний список:
- Переконайтеся, що файл дійсно є PSD/PSB — a
PsdLoadExceptionпро непідтримувану версію зазвичай означає, що файл не є справжнім документом PSD/PSB. - Перевірте
NotSupportedException— можливо, ви встановлюєте одну з 7 лише для читання властивостей, перелічених вище, замість того, щоб її читати. - Verify
Opacityє в діапазоні 0-255, а не 0.0-1.0 або 0-100. - Тримайте рядкові значення менше 255 байт перед збереженням, щоб уникнути
PsdSaveException. - Call
image.Saveпісля кожного редагування — зміни вLayerекземпляри не зберігаються, доки документ не буде збережений.