Ядро API

Основне API

PsdImage є точкою входу для завантаження, інспектування та збереження PSD/PSB документів. Він розширює абстрактний Image базовий клас, який оголошує Width, Height, Bounds, Load(), Save() та Dispose().


Завантаження та збереження документів

Image.Load() приймає шлях до файлу або Stream і повертає Image; приведiть результат до PsdImage, щоб отримати доступ до решти поверхні документа. PsdImage.Save() записує документ назад у шлях до файлу або поток.

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

Властивості заголовка документа

PsdImage надає розпарсений заголовок як типізовані властивості: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size та 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}");

Ресурси зображень

PsdImage.ImageResources повертає розпарсений масив ResourceBlock[]. У цьому FOSS збірці, ImageResources, GlobalLayerResources, ActiveLayer та HasTransparencyData можна читати, але не перепризначати — їх сеттери викидають NotSupportedException.

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

Поради та найкращі практики

  • Завжди приводьте результат Image.Load() до PsdImage, щоб отримати доступ до специфічних для PSD членів.
  • Обертайте об’єкти, які варті Dispose(), у оператор using; PsdImage реалізує IDisposable.
  • Розглядайте ImageResources, GlobalLayerResources, ActiveLayer і HasTransparencyData як лише для читання, хоча вони мають сеттер.
  • Перевірте image.Layers.Length перед індексацією image.Layers — сплощений документ може не мати шарів.

Поширені проблеми

ПроблемаПричинаВиправлення
NotSupportedException при встановленні ImageResourcesЦя властивість лише для читання у збірці FOSS, незважаючи на наявність setterЧитайте значення; не намагайтеся переприсвоїти його
Порожній масив image.Layers у сплощеному документіIsFlatten є true і документ не має проаналізованих шарівПеревірте image.Layers.Length (або image.IsFlatten) перед індексуванням у image.Layers

FAQ

Чи розкодує завантаження PSD-документа піксельні дані?

Ні. PsdImage.Load() аналізує заголовок документа, метадані шарів та ресурси без декодування або відтворення піксельних даних.

Чи можу я конвертувати файл PSD в інший формат зображення?

Ні. Ця бібліотека завантажує, перевіряє та зберігає лише документи PSD/PSB — вона не відтворює піксельні дані і не конвертує в інші формати зображень.


API Reference Підсумок

Клас/МетодОпис
Image.Load(string) / Image.Load(Stream)Завантажує документ PSD або PSB
PsdImage.Save(string) / PsdImage.Save(Stream)Зберігає документ
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenВластивості заголовка документа
PsdImage.ImageResourcesПроаналізовані блоки ресурсів зображень (тільки для читання)

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

 Українська