Kern API
Kern-API
PsdImage ist der Einstiegspunkt zum Laden, Inspizieren und Speichern von PSD/PSB Dokumenten. Es erweitert die abstrakte Basisklasse Image, die nur load() deklariert – der Rest der Dokumentoberfläche (width, height, save(), Kontext-Manager-Unterstützung) ist direkt in PsdImage definiert und wird nicht vererbt.
Laden und Speichern von Dokumenten
Image.load() akzeptiert einen Dateipfad oder einen Stream und gibt ein Image zurück; für PSD/PSB Eingaben ist dies immer ein PsdImage, sodass die Dokumentoberfläche sofort verfügbar ist, ohne expliziten Cast. PsdImage unterstützt zudem die with Anweisung für automatische Bereinigung, und PsdImage.save() schreibt das Dokument zurück zu einem Dateipfad oder Stream.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Dokumentkopf-Eigenschaften
PsdImage stellt den geparsten Header als typisierte Eigenschaften bereit: width, height, bits_per_channel, color_mode, version, compression, size und is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Bildressourcen
PsdImage.image_resources gibt die geparste Liste von ResourceBlock Objekten zurück. In diesem FOSS-Build können image_resources, global_layer_resources, active_layer und has_transparency_data gelesen, aber nicht neu zugewiesen werden – ihre Setter lösen NotSupportedException aus.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Tipps und bewährte Verfahren
Image.load()gibt bereits einPsdImagefür PSD/PSB Eingabe zurück — ein Cast ist nicht erforderlich, im Gegensatz zu einigen anderen Sprachportierungen dieser Bibliothek.- Verwenden Sie die
with-Anweisung;PsdImageunterstützt das Kontextmanager-Protokoll für die Bereinigung. - Behandeln Sie
image_resources,global_layer_resources,active_layerundhas_transparency_dataals schreibgeschützt, obwohl sie einen Setter bereitstellen. - Überprüfen Sie
image.layer_count, bevor Sie aufimage.layersindexieren — ein abgeflachtes Dokument kann keine Ebenen haben.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
NotSupportedException beim Setzen von image_resources | Diese Eigenschaft ist im FOSS-Build schreibgeschützt, obwohl sie einen Setter hat | Lese den Wert; versuche nicht, ihn neu zuzuweisen |
Leere image.layers-Liste in einem abgeflachten Dokument | is_flatten ist True und das Dokument hat keine geparsten Ebenen | Prüfen Sie image.layer_count (oder image.is_flatten) bevor Sie in image.layers indizieren |
FAQ
Wird beim Laden eines PSD-Dokuments die Pixeldaten dekodiert?
Nein. PsdImage.load() analysiert den Dokumentenkopf, 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, inspiziert und speichert ausschließlich PSD/PSB-Dokumente — sie rendert keine Pixeldaten und konvertiert nicht in andere Bildformate.
API Reference Zusammenfassung
| Klasse/Method | Beschreibung |
|---|---|
Image.load(path) / Image.load(stream) | Lädt ein PSD- oder PSB-Dokument |
PsdImage.save(path) / PsdImage.save(stream) | Speichert das Dokument |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Dokumentkopf-Eigenschaften |
PsdImage.image_resources | Geparste Bildressourcenblöcke (schreibgeschützt) |