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()nachPsdImage, um auf PSD-spezifische Member zuzugreifen. - Packen Sie
Dispose()-würdige Objekte in eineusing-Anweisung;PsdImageimplementiertIDisposable. - Behandeln Sie
ImageResources,GlobalLayerResources,ActiveLayerundHasTransparencyDataals schreibgeschützt, obwohl sie einen Setter bereitstellen. - Überprüfen Sie
image.Layers.Length, bevor Sie inimage.Layersindexieren — ein abgeflachtes Dokument kann null Ebenen haben.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
NotSupportedException beim Setzen von ImageResources | Diese 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 Dokument | IsFlatten ist true und das Dokument hat keine geparsten Ebenen | Prü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/Methode | Beschreibung |
|---|---|
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 / IsFlatten | Dokumentkopf-Eigenschaften |
PsdImage.ImageResources | Geparste Bildressourcenblöcke (schreibgeschützt) |