Усунення неполадок Aspose.PSD FOSS for .NET

Усунення неполадок 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

Контрольний список діагностики

Перш ніж відкривати заявку в підтримку, пройдіть цей контрольний список:

  1. Переконайтеся, що файл дійсно є PSD/PSB — a PsdLoadException про непідтримувану версію зазвичай означає, що файл не є справжнім документом PSD/PSB.
  2. Перевірте NotSupportedException — можливо, ви встановлюєте одну з 7 лише для читання властивостей, перелічених вище, замість того, щоб її читати.
  3. Verify Opacity є в діапазоні 0-255, а не 0.0-1.0 або 0-100.
  4. Тримайте рядкові значення менше 255 байт перед збереженням, щоб уникнути PsdSaveException.
  5. Call image.Save після кожного редагування — зміни в Layer екземпляри не зберігаються, доки документ не буде збережений.

Дивіться також

 Українська