Rdzeń API

Podstawowe API

PsdImage jest punktem wejścia do ładowania, przeglądania i zapisywania dokumentów PSD/PSB. Rozszerza abstrakcyjną klasę bazową Image, która deklaruje Width, Height, Bounds, Load(), Save() i Dispose().


Ładowanie i zapisywanie dokumentów

Image.Load() przyjmuje ścieżkę pliku lub Stream i zwraca Image; rzutuj wynik na PsdImage, aby uzyskać dostęp do reszty powierzchni dokumentu. PsdImage.Save() zapisuje dokument z powrotem do ścieżki pliku lub strumienia.

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

Właściwości nagłówka dokumentu

PsdImage udostępnia przetworzony nagłówek jako typowane właściwości: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size i 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}");

Zasoby obrazów

PsdImage.ImageResources zwraca przetworzoną tablicę ResourceBlock[]. W tej wersji FOSS, ImageResources, GlobalLayerResources, ActiveLayer i HasTransparencyData można odczytać, ale nie można im przypisać — ich settery rzucają NotSupportedException.

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

Wskazówki i najlepsze praktyki

  • Zawsze rzutuj wynik Image.Load() na PsdImage, aby uzyskać dostęp do specyficznych dla PSD elementów.
  • Umieść obiekty warte Dispose() w instrukcji using; PsdImage implementuje IDisposable.
  • Traktuj ImageResources, GlobalLayerResources, ActiveLayer i HasTransparencyData jako tylko do odczytu, mimo że udostępniają setter.
  • Sprawdź image.Layers.Length przed indeksowaniem image.Layers — spłaszczony dokument może nie mieć warstw.

Typowe problemy

ProblemPrzyczynaNaprawa
NotSupportedException przy ustawianiu ImageResourcesTa właściwość jest tylko do odczytu w wersji FOSS, pomimo że posiada setterOdczytaj wartość; nie próbuj jej ponownie przypisać
Pusta tablica image.Layers w spłaszczonym dokumencieIsFlatten jest true i dokument nie ma przetworzonych warstwSprawdź image.Layers.Length (lub image.IsFlatten) przed indeksowaniem w image.Layers

FAQ

Czy wczytanie dokumentu PSD dekoduje dane pikseli?

Nie. PsdImage.Load() analizuje nagłówek dokumentu, metadane warstw i zasoby bez dekodowania lub renderowania danych pikseli.

Czy mogę przekonwertować plik PSD na inny format obrazu?

Nie. Ta biblioteka ładuje, przegląda i zapisuje wyłącznie dokumenty PSD/PSB — nie renderuje danych pikseli ani nie konwertuje do innych formatów obrazu.


API Reference Podsumowanie

Klasa/MetodaOpis
Image.Load(string) / Image.Load(Stream)Wczytuje dokument PSD lub PSB
PsdImage.Save(string) / PsdImage.Save(Stream)Zapisuje dokument
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenWłaściwości nagłówka dokumentu
PsdImage.ImageResourcesPrzetworzone bloki zasobów obrazu (tylko do odczytu)

Zobacz także

 Polski