Kern API

Kern-API

PsdImage ist der Einstiegspunkt zum Laden, Inspizieren und Speichern von PSD/PSB Dokumenten. Es erweitert die abstrakte Basisklasse Image, die Width, Height, Bounds, Load(), Save() und Dispose() deklariert.


Laden und Speichern von Dokumenten

Image.Load() akzeptiert einen Dateipfad oder ein Stream und gibt ein Image zurück; casten Sie das Ergebnis zu PsdImage, um auf den Rest der Dokumentoberfläche zuzugreifen. PsdImage.Save() schreibt das Dokument zurück zu einem Dateipfad oder Stream.

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

Dokumenten-Header-Eigenschaften

PsdImage stellt den geparsten Header als typisierte Eigenschaften bereit: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size und 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}");

Bildressourcen

PsdImage.ImageResources gibt das geparste ResourceBlock[]-Array zurück. In diesem FOSS-Build können ImageResources, GlobalLayerResources, ActiveLayer und HasTransparencyData gelesen, aber nicht neu zugewiesen werden — ihre Setter werfen NotSupportedException.

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

Tipps und bewährte Verfahren

  • Casten Sie immer das Ergebnis von Image.Load() nach PsdImage, um auf PSD-spezifische Member zuzugreifen.
  • Packen Sie Dispose()-würdige Objekte in eine using-Anweisung; PsdImage implementiert IDisposable.
  • Behandeln Sie ImageResources, GlobalLayerResources, ActiveLayer und HasTransparencyData als schreibgeschützt, obwohl sie einen Setter bereitstellen.
  • Überprüfen Sie image.Layers.Length, bevor Sie in image.Layers indexieren — ein abgeflachtes Dokument kann null Ebenen haben.

Häufige Probleme

ProblemUrsacheLösung
NotSupportedException beim Setzen von ImageResourcesDiese Eigenschaft ist im FOSS-Build schreibgeschützt, obwohl ein Setter vorhanden ist.Lese den Wert; versuche nicht, ihn neu zuzuweisen.
Leeres image.Layers-Array in einem abgeflachten DokumentIsFlatten ist true und das Dokument hat keine geparsten EbenenPrüfen Sie image.Layers.Length (oder image.IsFlatten) bevor Sie in image.Layers indizieren

FAQ

Dekodiert das Laden eines PSD-Dokuments die Pixeldaten?

Nein. PsdImage.Load() analysiert den Dokumentkopf, die Ebenen-Metadaten und Ressourcen, ohne Pixel-Daten zu dekodieren oder zu rendern.

Kann ich eine PSD-Datei in ein anderes Bildformat konvertieren?

Nein. Diese Bibliothek lädt, untersucht und speichert ausschließlich PSD/PSB-Dokumente — sie rendert keine Pixeldaten und konvertiert nicht in andere Bildformate.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
Image.Load(string) / Image.Load(Stream)Lädt ein PSD- oder PSB-Dokument
PsdImage.Save(string) / PsdImage.Save(Stream)Speichert das Dokument
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenDokumentkopf-Eigenschaften
PsdImage.ImageResourcesGeparste Bildressourcenblöcke (schreibgeschützt)

Siehe auch

 Deutsch